pathconf 또는 fpathconf 서브루틴

용도

파일 구현 특성을 검색합니다.

라이브러리

표준 C 라이브러리(libc.a)

구문

#include <unistd.h>
long pathconf ( Path,  Name)
const char *Path;
int Name;
long fpathconf( FileDescriptor, Name)
int FileDescriptorName;

설명

pathconf 서브루틴을 사용하여 어플리케이션은 Path 매개변수로 이름 지정된 파일에 포함된 파일 시스템이 지원하는 조작의 특성을 판별할 수 있습니다. 이름 지정된 파일의 읽기, 쓰기 또는 실행 권한은 필요하지 않지만 파일로 연결되는 경로의 모든 디렉토리를 검색할 수 있어야 합니다.

fpathconf 서브루틴을 사용하여 어플리케이션은 열린 파일에 대해 동일한 정보를 검색할 수 있습니다.

매개변수

항목 설명
경로 경로 이름을 지정합니다.
FileDescriptor 열린 파일 설명자를 지정합니다.
이름 조회할 구성 속성을 지정합니다. Path 또는 FileDescriptor 매개변수로 지정된 파일에 이 속성을 적용할 수 없는 경우 pathconf 서브루틴은 오류를 리턴합니다. Name 매개변수의 기호 값은 unistd.h 파일에 정의됩니다.
최대 PC_LINK_MAX
파일에 대한 최대 링크 수를 지정합니다.
_PC_MAX_CANON
표준 입력 행의 최대 바이트 수를 지정합니다. 이 값은 터미널 장치에만 적용할 수 있습니다.
_PC_MAX_INPUT
입력 큐에서 허용되는 최대 바이트 수를 지정합니다. 이 값은 터미널 장치에만 적용할 수 있습니다.
_PC_NAME_MAX
종료 널 문자를 포함하지 않는 파일 이름의 최대 바이트 수를 지정합니다. 이 숫자의 범위는 14-255입니다. 이 값은 디렉토리 파일에만 적용 가능합니다.
PC_PATH_MAX (_PC_PATH_MAX)
종료 널 문자를 포함하여 경로 이름의 최대 바이트 수를 지정합니다.
PC_PIPE_BUF
원자적으로 기록되도록 보장되는 최대 바이트 수를 지정합니다. 이 값은 선입선출 (FIFO) 에만 적용할 수 있습니다.
제한된 _PC_CHOWN_RESTRICTED
chown 서브루틴의 사용이 적절한 특권이 있는 프로세스로 제한되고 chown 서브루틴이 파일의 그룹 ID를 프로세스의 유효 그룹 ID 또는 보충 그룹 ID중 하나로만 변경하도록 제한된 경우 0을 리턴합니다.

XPG_SUS_ENV가 ON으로 설정되면 _PC_CHOWN_RESTRICTED 는 0보다 큰 값을 리턴합니다.

_PC_NO_TRUNC
긴 구성요소 이름이 잘리면 0을 리턴합니다. 이 값은 디렉토리 파일에만 적용 가능합니다.

XPG_SUS_ENV가 ON으로 설정되면 _PC_NO_TRUNC 는 0보다 큰 값을 리턴합니다.

_PC_VDISABLE
이 값은 항상 0입니다. 사용 불가능 문자가 정의되지 않았습니다. 이 값은 터미널 장치에만 적용 가능합니다.
PC_AIX_DISK_PARTITION
디스크의 물리적 파티션 크기를 판별합니다.
주: _PC_AIX_DISK_PARTITION 변수는 루트 사용자만 사용할 수 있습니다.
PC_AIX 디스크 크기
디스크 크기 (MB) 를 결정합니다.
주: _PC_AIX_DISK_SIZE 변수는 루트 사용자만 사용할 수 있습니다.
PC_FILESIZEBITS
파일 시스템의 최대 파일 크기를 보유하는 데 필요한 최소 비트 수를 부호 있는 정수로 리턴합니다. 리턴되는 가장 작은 값은 32입니다.
PC_SYNC_IO
파일 시스템이 동기화된 입력 및 출력 옵션을 지원하지 않는 경우 -1 을 리턴합니다. 파일 시스템이 옵션을 지원하는 경우 -1 이외의 값이 리턴됩니다.
참고:
  1. Name 매개변수의 값이 _PC_LINK_MAX이고 Path 또는 FileDescriptor 매개변수가 디렉토리를 참조하는 경우, 리턴된 값은 디렉토리 자체에 적용됩니다.
  2. Name 매개변수의 값이 _PC_NAME_MAX 또는 _PC_NO_TRUNC이고 Path 또는 FileDescriptor 매개변수가 디렉토리를 참조하는 경우, 리턴된 값은 디렉토리 내의 파일 이름에 적용됩니다.
  3. Name 매개변수에 _PC_PATH_MAX인 값이 있고 Path 또는 FileDescriptor 매개변수가 작업 디렉토리인 디렉토리를 참조하는 경우, 리턴되는 값은 상대 경로 이름의 최대 길이입니다.
  4. Name 매개변수의 값이 _PC_PIPE_BUF이고 Path 매개변수가 FIFO 특수 파일을 참조하거나 FileDescriptor 매개변수가 파이프 또는 FIFO 특수 파일을 참조하는 경우, 리턴된 값은 참조된 오브젝트에 적용됩니다. Path 또는 FileDescriptor 매개변수가 디렉토리를 참조하는 경우, 리턴되는 값은 존재하거나 디렉토리 내에 작성될 수 있는 모든 FIFO 특수 파일에 적용됩니다.
  5. Name 매개변수의 값이 _PC_CHOWN_RESTRICTED이고 Path 또는 FileDescriptor 매개변수가 디렉토리를 참조하는 경우, 리턴된 값은 존재하거나 디렉토리 내에 작성될 수 있는 디렉토리 이외의 모든 파일에 적용됩니다.

리턴 값

pathconf 또는 fpathconf 서브루틴이 성공하면 지정된 매개변수가 리턴됩니다. 그렇지 않으면 -1 값이 반환되고 errno 전역 변수가 오류를 나타내도록 설정됩니다. Name 매개변수에 해당하는 변수에 Path 매개변수 또는 FileDescriptor 매개변수에 대한 제한이 없는 경우, pathconffpathconf 서브루틴은 errno 전역 변수를 변경하지 않고 -1 값을 반환합니다.

오류 코드

다음 오류가 발생하면 pathconf 또는 fpathconf 서브루틴이 실패합니다.

항목 설명
EINVAL name 매개변수는 알 수 없거나 적용할 수 없는 특성을 지정합니다.

pathconf 서브루틴은 다음 오류가 발생하는 경우에도 실패할 수 있습니다.

항목 설명
EACCES 경로 접두부의 구성요소에 대한 검색 권한이 거부되었습니다.
EINVAL 구현은 Name 매개변수와 지정된 파일의 연관을 지원하지 않습니다.
ENAMETOOLONG Path 매개변수 문자열의 길이가 PATH_MAX 값을 초과합니다.
ENAMETOOLONG 기호 링크의 경로 이름 분석에서 길이가 PATH_MAX를 초과하는 중간 결과를 생성했습니다.
ENOENT 이름 지정된 파일이 존재하지 않거나 Path 매개변수가 빈 문자열을 가리킵니다.
ENOTDIR 경로 접두부의 구성요소가 디렉토리가 아닙니다.
루프 경로 해석 중에 너무 많은 기호 링크가 발견되었습니다.

다음 오류 중 하나가 발생하면 fpathconf 서브루틴이 실패할 수 있습니다.

항목 설명
EBADF File Descriptor 매개변수가 올바르지 않습니다.
EINVAL 구현은 Name 매개변수와 지정된 파일의 연관을 지원하지 않습니다.