SYMLINK(2)

명칭
symlink - 파일에의 기호 연결의 작성

프로그램 라이브러리
libc

서식
<unistd.h> int symlink(const char *name1, const char *name2)

해설
기호 연결 name2 하지만 name1 에 작성됩니다 (name2 (은)는 작성되는 파일의 이름으로, name1 (은)는 기호 연결의 작성에 사용되는 캐릭터 라인입니다). 어느 쪽의 이름도 임의의 패스명입니다. 파일이 같은 파일 시스템에 존재할 필요는 없습니다.

반환값

에러
이하와 같은 경우, 기호 연결은 에러가 됩니다.

[ENOTDIR]
    name2 패스의 원가요소중에 디렉토리 이외의 것이 포함되어 있습니다.

[ENAMETOOLONG]
    패스명의 원가요소가 255 캐릭터를 넘고 있는지, 또는 패스명 전체가 1023 캐릭터를 넘고 있습니다.

[ENOENT]
    지정된 파일이 존재하지 않습니다.

[EACCES]
    name2 지정된 패스에는, 검색이 허가되어 있지 않은 디렉토리가 포함되어 있습니다.

[ELOOP]
    패스명을 변환할 경우에 검출된 기호 연결이 너무 많습니다.

[EEXIST]
    name2 하지만 벌써 존재합니다.

[EIO]
    name2 의 디렉토리 엔트리의 작성중, 또는 name2 의 inode 의 할당중, 혹은 name2 의 링크 컨텐츠의 서두중에 입출력 에러가 발생했습니다.

[EROFS]
    파일 name2 (은)는 읽기 전용 파일 시스템상에 있습니다.

[ENOSPC]
    새로운 기호 연결을 작성하는 디렉토리를 포함한 파일 시스템상에 공간이 남지 않기 때문에, 새로운 기호 연결을 작성할 수 없습니다.

[ENOSPC]
    기호 연결을 포함한 파일 시스템상에 기호 연결을 만드는 공간이 남지 않기 때문에, 새로운 기호 연결을 작성할 수 없습니다.

[ENOSPC]
    기호 연결을 작성하는 파일 시스템상의 inode 가 고갈했습니다.

[EDQUOT]
    새로운 기호 연결의 엔트리를 배치하는 디렉토리 디렉토리를 포함한 파일 시스템상의 유저의 디스크 블록이 고갈했기 때문에, 작성할 수 없습니다.

[EDQUOT]
    기호 연결을 만드는 파일 시스템상의 유저의 디스크 블록의 쿼터가 고갈했기 때문에, 새로운 기호 연결을 작성할 수 없습니다.

[EDQUOT]
    기호 연결을 작성하는 파일 시스템상의 유저의 inode 의 쿼터가 고갈했습니다.

[EIO]
    디렉토리 엔트리의 작성중, 또는 inode 의 할당중에 입출력 에러가 발생했습니다.

[EFAULT]
    name1 인가 name2 하지만, 프로세스에 할당할 수 있었던 address 공간의 범위외를 가리키고 있습니다.

관련 항목
ln(1), link(2), lstat(2), readlink(2), unlink(2), symlink(7)

역사
symlink() 함수 호출은, 4.2BSD 그리고 등장했습니다.