>  기사  >  운영 및 유지보수  >  Linux에 파일이 존재하는지 확인하는 방법

Linux에 파일이 존재하는지 확인하는 방법

尚
원래의
2019-12-13 10:08:495478검색

Linux에 파일이 존재하는지 확인하는 방법

Linux에서 파일이 존재하는지 확인하는 방법:

1.stat 시리즈 함수

stat 함수는 파일과 관련된 구조 정보를 반환하는 데 사용됩니다. stat 계열 함수에는 각각 파일 이름, 파일 설명자 및 기호 링크 파일에 해당하는 세 가지 상황이 있습니다. 통계 구조는 주로 파일 유형, 파일 크기 등을 포함한 파일 속성을 설명합니다. 자세한 통계 구조는 다음과 같습니다.

struct stat {
    mode_t    st_mode;    // file type & mode(permissions)
    ino_t     st_ino;     // i-node number(serial number)
    dev_t     st_dev;     // device number(filesystem)
    dev_t     st_rdev;    // device number for specials files
    nlink_t   st_nlink;   // number of links
    uid_t     st_uid;     // user ID of owner
    gid_t     st_gid;     // group ID of owner
    off_t     st_size;    // size in bytes, for regular files
    time_t    st_atime;   // time of last access
    time_t    st_mtime;   // time of last modification
    time_t    st_ctime;   // time of last file status change
    long      st_blksize; // best I/O block size
    long      st_blocks;  // number of 512-byte blocks allocated
};

stat를 통해 파일 형식, 파일 크기 등의 정보를 얻을 수 있습니다. 파일 유형은 일반 파일, 디렉토리 파일, 블록 특수 파일, 문자 특수 파일, FIFO, 소켓 및 기호 링크입니다. stat 일련의 함수를 사용하여 파일 또는 디렉터리가 존재하는지 확인하려면 stat 함수를 실행할 때 파일이 존재하는 경우 해당 파일이 일반 파일인지 디렉터리 파일인지 추가로 확인해야 합니다.

stat 계열 함수는 -1을 반환합니다. 오류 코드는 errno에 저장됩니다.

1 ENOENT 매개변수 file_name에 지정된 파일이 존재하지 않습니다. ENOTDIR 경로에 존재하지만 실제 디렉터리가 아닙니다.

3. ELOOP에서 열 수 있는 파일에 기호 링크가 너무 많습니다. EFAULT 매개변수 buf는 잘못된 포인터입니다.

5. 파일에 액세스할 때 EACCESS가 거부되었습니다.

6. ENOMEM 코어 메모리가 부족합니다.

7. ENAMETOOLONG 매개변수 file_name의 경로 이름이 너무 깁니다. .접근 기능

접근 기능은 실제 사용자 ID와 실제 그룹을 기준으로 접근 권한을 테스트하는 기능입니다. 함수 프로토타입은 다음과 같습니다.

#include <unistd.h>
int access(const char *pathname, int mode);

모드 값:

F_OK 파일 존재 여부 테스트

R_OK 읽기 권한 테스트

W_OK 쓰기 권한 테스트

X_OK 실행 권한 테스트

액세스 기능은 파일이 있는지 여부를 올바르게 확인하는 데 사용됩니다.

3. oepndir 함수

opendir 함수는 파일 디렉터리를 여는 데 사용되며, 성공하면 포인터를 반환하고, 오류가 발생하면 NULL을 반환합니다. 구현은 다음과 같습니다:

Linux에 파일이 존재하는지 확인하는 방법

(권장 학습:

linux 튜토리얼

)

위 내용은 Linux에 파일이 존재하는지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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