본문 바로가기

C언어/시스템 소프트웨어

[시스템 소프트웨어/C언어] stat(), fstat()

728x90
반응형

stat()과 fstat()

 

stat()과 fstat() 모두 파일의 정보를 가져오는 함수이지만 파일 접근 방식에 차이가 있다.

 

두 함수 모두 <sys/stat.h>에 정의되어 있다.

 

 

 

 

stat()

 

stat()의 시그니처는 아래 코드와 같다.

 

int stat(const char* pathname, struct stat* statbuf);

 

stat()은 pathname으로 파일의 경로를 입력받아 이것을 바탕으로 파일의 정보를 불러온다.

 

또한 stat()은 파일의 경로만 있으면 파일에 접근할 수 있기 때문에 파일이 열려있지 않아도 사용이 가능하다.

 

stat 구조체 포인터 타입의 변수도 인자로 요구하는데 불러온 데이터를 해당 포인터가 가리키는 위치에 저장한다.

 

 

 

 

fstat()

 

fstat()의 시그니처는 아래 코드와 같다.

 

int fstat(int fd, struct stat* statbuf);

 

fstat()은 fd로 파일 디스크립터를 입력받아 파일의 데이터에 접근한다.

 

 

 

 

 

반환값

 

stat()과 fstat()의 반환값은 함수 동작의 성공 여부를 의미한다.

 

성공 시에는 0을 반환하며 실패 시에는 -1을 반환한다.

 

 

 

728x90
반응형