개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.06 09:56

fstat 함수에 대한 질문

목록
  • 애자일광신도 3시간 전 2025.08.06 09:56 새글
  • 1
    1
선생님, fstat 함수를 사용하여 파일의 상태를 얻을 때, 그중에서 file type에 대해 궁금한 점이 있습니다.
fstat 함수를 사용하여 파일의 상태를 얻을 때, file type에 대해 명확한 설명이 있는지 궁금합니다.
fstat 함수를 사용하여 파일의 상태를 얻을 때, file type에 대해 어떤 종류의 파일인지 구분하는 방법이 있을까요?
fstat 함수에서 file type을 어떻게 구분하여 사용할 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  3시간 전



    fstat 함수는 파일의 상태를 얻을 때 사용하는 시스템 콜입니다. file type에 대한 정보를 얻으려면 stat 구조체의 st_mode 필드를 사용합니다.

    st_mode 필드는 파일의 타입, 권한, 소유자, 그룹, 기타 정보를 포함하는 16비트의 비트 필드입니다.

    파일의 타입을 구분하는 방법은 다음과 같습니다.

    - S_ISREG(st_mode) : 일반 파일
    - S_ISDIR(st_mode) : 디렉토리
    - S_ISLNK(st_mode) : 심볼릭 링크
    - S_ISFIFO(st_mode) : 파이프
    - S_ISSOCK(st_mode) : 소켓

    이러한 함수를 사용하여 file type을 구분하여 사용할 수 있습니다.

    예를 들어, 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        struct stat statbuf;
    
        if (fstat(fd, &statbuf) == -1) {
    
            perror("fstat");
    
            return 1;
    
        }
    
    
    
        if (S_ISREG(statbuf.st_mode)) {
    
            printf("일반 파일n");
    
        } else if (S_ISDIR(statbuf.st_mode)) {
    
            printf("디렉토리n");
    
        } else if (S_ISLNK(statbuf.st_mode)) {
    
            printf("심볼릭 링크n");
    
        } else if (S_ISFIFO(statbuf.st_mode)) {
    
            printf("파이프n");
    
        } else if (S_ISSOCK(statbuf.st_mode)) {
    
            printf("소켓n");
    
        } else {
    
            printf("알 수 없는 파일 타입n");
    
        }
    
    
    
        return 0;
    
    }
    
    


    이 예제에서는 fstat 함수를 사용하여 파일의 상태를 얻은 후, stat 구조체의 st_mode 필드를 사용하여 파일의 타입을 구분합니다.

    2025-08-06 09:57

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 41,867건 / 2 페이지

검색

게시물 검색