>  기사  >  백엔드 개발  >  시스템 호출을 사용하여 Unix에서 디렉터리 존재를 확인하는 방법은 무엇입니까?

시스템 호출을 사용하여 Unix에서 디렉터리 존재를 확인하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-07 13:09:03846검색

How to Check Directory Existence in Unix Using System Calls?

Unix에서 디렉토리 존재 확인: 시스템 호출을 사용한 종합 안내서

문제:

Unix에서 어떻게 할 수 있습니까? 디렉터리를 열거나 관련 오류를 처리하지 않고 시스템 호출을 사용하여 디렉터리의 존재를 확인합니까?

답변:

POSIX 시스템은 이러한 목적을 위해 두 가지 필수 기능을 제공합니다. stat( ) 및 lstat(). 이러한 함수를 사용하면 경로 이름이 액세스 가능한 유효한 객체를 반영하는지 확인하고 해당 유형에 대한 정보를 검색할 수 있습니다.

stat()와 lstat()의 주요 차이점:

  • stat(): 심볼릭 링크를 따라가며 최종 목적지에 대한 정보를 제공합니다.
  • lstat(): 심볼릭 링크가 가리키는 대상에 관계없이 심볼릭 링크 자체에 대한 정보를 제공합니다.

stat()을 사용한 구현:

#include <sys/stat.h>

struct stat sb;

if (stat(pathname, &sb) == 0 && S_ISDIR(sb.st_mode)) {
    // True if pathname is a directory
}

추가 파일 형식 확인:

< sys/stat.h>, 디렉터리 이외의 다른 파일 형식을 확인할 수 있습니다:

  • S_ISREG: 일반 파일
  • S_ISCHR: 문자 장치
  • S_ISBLK: 블록 장치
  • S_ISFIFO: FIFO
  • S_ISLNK: 심볼릭 링크
  • S_ISSOCK: 소켓

위 내용은 시스템 호출을 사용하여 Unix에서 디렉터리 존재를 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.