link
#include<unistd.h>
int link(const char *existingpath, const char *newpath);
기능
존재하는 파일에 대해 새로운 디렉터리 항목 생성.
i-node에 대한 연결 계수(link count) 1증가.
슈퍼 유저만이 디렉터리에 대한 링크 설정 가능.
서로 다른 파일 시스템 간 링크를 허용하지 않음.
리턴 : 성공시 0, 실패시 -1
unlink
#include<unistd.h>
int unlink(const char *pathname);
기능 : 파일의 연결 계수 1 감소. 디렉터리에 사용 불가.
리턴 : 성공시 0, 실패시 -1
remove
#include<unistd.h>
int remove(const char *pathname);
기능 : 파일의 연결 계수 1 감소. 디렉터리면 rmdir의 효과 발생
리턴 : 성공시 0, 실패시 -1
rename
#include<unistd.h>
int rename(const char* oldname, const char *newname);
기능 : 파일이나 디렉터리 이름을 바꾼다. newname이 존재시 덮어쓴다.
리턴 : 성공시 0, 실패시 -1
symbolic link
파일에 대한 간접적인 포인터.
symlink
#include<unistd.h>
int symlink(const char *actualpath, const char *sympath);
기능 : 심볼릭 링크를 만든다. sympath->actualpath
리턴 : 성공시 0, 실패시 -1
readlink
#include<unistd.h>
int readlink(const char *pathname, char *buf, int bufsize);
기능 : 심볼릭 링크 파일을 읽는 함수. open, close없이 바로 buf로 읽는다.
리턴 : 성공시 0, 실패시 -1
utime
#include<unistd.h>
int utime(const char *pathname, const struct utimbuf *times);
기능 : 파일의 최종 접근 시간과 최종 변경 시간을 조정.
utimbuf 구조체 내용에는 time_t형으로 접근 시간과 수정 시간 값이 존재.
리턴 : 성공시 0, 실패시 -1
※ shell에서 touch 명령으로 현재 시간으로 수정 시간을 변경 가능함.
디렉터리 구조
direct 구조체 : inode 번호와 파일이름으로 구성.
DIR 구조체 : file descriptor처럼 디렉터리를 접근하는 데 필요한 구조체
디렉터리 관련 함수들
mkdir : 디렉터리 생성
rmdir : 디렉터리 삭제
opendir : 디렉터리 항목을 읽기 위해 디렉터리 파일 open(읽기권한 필요)
readdir : 디렉터리 항목을 읽음. sizeof(struct direct)만큼 offset 바이트 수 증가.
rewinddir : 디렉터리 offset을 시작위치로.
closedir : 디렉터리 파일 close
chdir, fchdir(filedes) : 현재 작업 디렉터리 변경
getcwd : 현재 작업 디렉터리를 문자열로 얻음.
'컴퓨터 공부 > Advanced UNIX System Programming' 카테고리의 다른 글
[4월 29일 2교시] 라이브러리 파일 관련 함수 2 (0) | 2009.04.29 |
---|---|
[4월 29일 1교시] 라이브러리 파일 관련 함수 1 (0) | 2009.04.29 |
[4월 28일 2교시] 접근 권한 (0) | 2009.04.28 |
[4월 28일 1교시] 파일 관련 시스템 콜2 (0) | 2009.04.28 |
[4월 27일 3교시] 파일 관련 시스템 콜 (0) | 2009.04.27 |