READLINK(2)

이름
readlink - 상징 연결의 값을 읽는다.

사용법
#include <unistd.h>

int readlink(const char *path, char *buf, size_t bufsiz);

설명
readlink 는 bufsiz크기를 가지고 있는 버퍼 buf에 path 상징 연결의 요소를 넣는다. readlink 는 buf에 NULL 문자를 추가하지 않는다. 이 함수는 버퍼가 모든 내용을 넣기에 너무 작다면 내용을 자른다( bufsiz 문자들의 길이로).

반환값
함수는 성공시 버퍼에 있는 문자들의 갯수가 반환되며, 에러가 발생했다면 -1이 리턴되며 errno에는 에러 코드가 설정된다.

에러

ENOTDIR
    경로 머릿부의 요소가 디렉토리가 아니다.

EINVAL
    bufsiz 가 양수가 아니다.

ENAMETOOLONG
    경로 이름 또는 경로 이름의 요소가 너무 길다.

ENOENT
    명명된 파일이 존재하지 않는다.

EACCES
    탐색 허가권이 경로 머릿부의 요소에서 거부되었다.

ELOOP
    너무 많은 상징 연결들을 경로이름을 번역하면서 만났다.

EINVAL
    명명된 파일이 상징 연결이 아니다.

EIO 파일 시스템에서 읽는동안 I/O 에러가 발생했다.

EFAULT
    buf 가 프로세스에 할당된 주소 공간 외까지 확장되었다.

ENOMEM
    이용할수 있는 커널 메모리가 충분하지 않다.

호환
X/OPEN, 4.4BSD ( readlink 함수는 4.2BSD에서 나타났다.)

관련 항목
stat(2), lstat(2), symlink(2)

역자
정강훈 <skyeyes@soback.kornet.net>, 2000년 8월 5일