파일(:12)에 대한 새로운 이름을 만든다.
#include <unistd.h> int link(const char *oldpath, const char *newpath);
link는 oldpath 로 존재하는 파일에 대해서 새로운 연결 - 보통 하드링크(:12) 라고 한다 -을 만든다.
만약 newpath 가 이지 존재하고 있다면, 덮어쓰지 않는다.
이것은 copy(:12) 와는 다르다. 2개의 파일은 같은 inode(:12) 로 서로 연결되어 있다. 그러므로 link 는 서로 다른 장치(:12)들 사이에는 사용이 불가능하다. 서로 다른장치(파일시스템) 사이를 연결하려면 symlink(2) 를 사용해야 한다.
성공할경우 0을 실패했을경우에는 -1을 반환하며, 적당한 errno(:12) 값을 설정한다.
oldpath 와 newpath가 같은 파일시스템(:12)에 있지 않을경우, oldpath 와 newpath는 같은 파일시스템(:12)에 있어야 한다.
oldpath 와 newpath를 포함하는 파일시스템은 하드링크 생성을 지원하지 않는다.
newpath를 포함하는 디렉토리(:12)에 대한 쓰기 권한이 없다. 혹은 newpath 의 디렉토리 구성요소중 어느 하나에 대해서 실행 허가권을 가지고 있지 않을경우
oldpath 혹은 newpath 에 있는 디렉토리 구성요소가 존재하지 않을경우
일기전용 파일시스템일경우
newpath 가 이미 존재할때
#include <unistd.h> #include <string.h> #include <stdio.h> int main(int argc, char **argv) { if ( argc != 3) { printf ("Usage: ./link [원본파일] [복사파일]\n"); return -1; } if(access(argv[1], F_OK) != 0) { printf("원본파일이 없습니다\n"); return -1; } if( access(:12) (argv[2], F_OK) == 0) { printf("이미파일이 존재합니다\n"); return -1; } if (link (argv[1], argv[2]) == -1) { perror("link error "); } }
Copyrights © - Joinc, All Rights Reserved. Inherited From - Yundream Rebranded By - Joonphil
1장. link(2)
파일(:12)에 대한 새로운 이름을 만든다.
1.1절. 사용법
1.2절. 설명
link는 oldpath 로 존재하는 파일에 대해서 새로운 연결 - 보통 하드링크(:12) 라고 한다 -을 만든다.
만약 newpath 가 이지 존재하고 있다면, 덮어쓰지 않는다.
이것은 copy(:12) 와는 다르다. 2개의 파일은 같은 inode(:12) 로 서로 연결되어 있다. 그러므로 link 는 서로 다른 장치(:12)들 사이에는 사용이 불가능하다. 서로 다른장치(파일시스템) 사이를 연결하려면 symlink(2) 를 사용해야 한다.
1.3절. 반환값
성공할경우 0을 실패했을경우에는 -1을 반환하며, 적당한 errno(:12) 값을 설정한다.
1.4절. 에러
oldpath 와 newpath가 같은 파일시스템(:12)에 있지 않을경우, oldpath 와 newpath는 같은 파일시스템(:12)에 있어야 한다.
oldpath 와 newpath를 포함하는 파일시스템은 하드링크 생성을 지원하지 않는다.
newpath를 포함하는 디렉토리(:12)에 대한 쓰기 권한이 없다. 혹은 newpath 의 디렉토리 구성요소중 어느 하나에 대해서 실행 허가권을 가지고 있지 않을경우
oldpath 혹은 newpath 에 있는 디렉토리 구성요소가 존재하지 않을경우
일기전용 파일시스템일경우
newpath 가 이미 존재할때
1.5절. 예제
Recent Posts
Archive Posts
Tags