파일 권한

mode_t umask(mode_t cmask);    //이전 마스크 반환
oldmask = umask(022);   //owner를 제외한 나머지의 write권한 block

//ruid, rgid를 이용하여 amode에 대한 실행 권한 확인. R_OK, W_OK, X_OK, F_OK
int access(const char *pathname, int amode);

//newmode로 권한 변경. owner 또는 super user만 권한 변경 가능
int chmod(const char *pathname, mode_t newmode); 

int chown(const char *pathname, uid_t owner_id, gid_t group_id);    //uid,gid 변경

Hard Link, Symbolic Link

Untitled

Untitled

//orginal과 new를 연결하는 hard link 생성, link count++;
int link(const char *original_path, const char *new_path);

int unlink(const char *pathname);   //link 제거

int remove(const char *pathname);  //unlink와 동일하게 동작

int rename(const char *oldname, const char *newname);  //oldname에서 newname으로 이름 바꿈

int symlink(const char *realname, const char *symname);  //realname을 향하는 symbolic link 생성

//sympath에 있는 파일 bufsize만큼 읽어옴
int readlink(const char *sympath, char *buffer, size_t bufsize);  

stat, fstat

int stat(const char *pathname, struct stat *buf);  //pathname의 파일 정보 가져
int fstat(int filedes, struct stat *buf);  //이름 없는 파일. fd=0,1,2 이용
int lstat(const char *pathname, struct stat *buf); //symbolic link 정보 가져옴