PATHCONF(2)

명칭
pathconf, fpathconf - 구성 가능한 패스명 변수를 취득한다

프로그램 라이브러리
libc

서식
<unistd.h> long pathconf(const char *path, int name) long fpathconf(int fd, int name)

해설
pathconf() 함수와 fpathconf() 함수는, 구성 가능한 시스템 한계의 현재가, 또는 패스명이나 파일 기술자에게 대응하는 옵션 변수를 어플리케이션이 판정하는 방법을 제공합니다.

pathconf() 의 경우, path 인수는 파일 또는 디렉토리의 이름입니다. fpathconf() 의 경우, fd 인수는 오픈 파일의 기술자입니다. name 인수는, 조회하는 시스템 변수를 지정합니다. 각각의 이름에 관한 상징적 정수는 인클루드 파일 <unistd.h> 에 있습니다.

이용 가능한 값은 다음과 같습니다.

_PC_LINK_MAX
    최대의 파일 링크 카운트.

_PC_MAX_CANON
    단말의 표준 모드 입력 기다리는 행렬의 최대 바이트수.

_PC_MAX_INPUT
    단말 입력 기다리는 행렬내 공간에서 이용할 수 있는 최대 바이트수의 최소치.

_PC_NAME_MAX
    파일명의 최대 바이트수.

_PC_PATH_MAX
    패스명의 최대 바이트수.

_PC_PIPE_BUF
    파이프에 자동적으로 쓰기최대 바이트수.

_PC_CHOWN_RESTRICTED
    chown(2) 시스템 콜을 실행하는데, 적절한 특권이 필요한 경우는 1 을 돌려주어, 그렇지 않은 경우는 0 을 돌려줍니다.

_PC_NO_TRUNC
    KERN_NAME_MAX 보다 긴 파일명을 잘라 버릴 수 있는 경우는 1 을 돌려줍니다.

_PC_VDISABLE
    단말 제어 캐릭터를 무효로 하기 위한 값을 돌려줍니다.

반환값
pathconf() 또는 fpathconf() 의 호출이 정상적으로 완료하지 않는 경우는 -1 이 돌려주어 errno 하지만 적절한 값으로 설정됩니다. 변수에 연결시킬 수 있었던 기능이 시스템내에 한계를 가지지 않을 때, -1 하지만 돌려주어 errno (은)는 수정되지 않습니다. 그 이외의 경우, 현재의 변수치가 돌려주어집니다.

에러
다음의 조건의 어떤 것인가가 일어났을 경우, pathconf() 함수와 fpathconf() 함수는 -1 을 돌려주어, errno 에 대응하는 값을 설정합니다.

[EINVAL]
    name 인수의 값이 무효입니다.

[EINVAL]
    이 파일과 이 변수와의 관계는, 실장되고 있지 않습니다.

pathconf() (은)는 다음의 경우에 실패합니다.

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

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

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

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

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

[EIO]
    파일 시스템에 읽고 쓰기하고 있는 동안에 입출력 에러가 발생했습니다.

fpathconf() (은)는 다음의 경우에 실패합니다.

[EBADF]
    fd (은)는 유효한 오픈 파일 기술자가 아닙니다.

[EIO]
    파일 시스템에 읽고 쓰기하고 있는 동안에 입출력 에러가 발생했습니다.

관련 항목
sysctl(3)

역사
pathconf() 함수와 fpathconf() 함수는 4.4BSD 그리고 처음 등장했습니다.