개발자 Q&A

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

2025.07.11 14:16

posix_mknod 함수 이해를 부탁드립니다

목록
  • UI디자이너 10일 전 2025.07.11 14:16
  • 68
    1
저는 posix_mknod 함수에 대해 공부 중인데, 이해가 잘 안 가는 부분이 있습니다.

posix_mknod 함수는 특정 디렉토리에 파일을 생성하는 함수로, 아래와 같이 사용할 수 있습니다.
c

int posix_mknod(const char *pathname, mode_t mode, dev_t dev);


여기서 mode와 dev 인자는 어떤 의미를 가지고 있는지 이해가 잘 안 가는 부분입니다.

mode 인자는 파일의 권한을 지정하는 데 사용되는데, 아래와 같은 값을 사용할 수 있습니다.
- S_IRUSR (owner 읽기 권한)
- S_IWUSR (owner 쓰기 권한)
- S_IXUSR (owner 실행 권한)
- S_IRGRP (그룹 읽기 권한)
- S_IWGRP (그룹 쓰기 권한)
- S_IXGRP (그룹 실행 권한)
- S_IROTH (기타 사용자 읽기 권한)
- S_IWOTH (기타 사용자 쓰기 권한)
- S_IXOTH (기타 사용자 실행 권한)

dev 인자는 장치 파일의 major number와 minor number를 지정하는 데 사용됩니다.

저는 mode와 dev 인자가 어떻게 사용되는지 이해를 못 하므로, 자세한 설명 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  10일 전



    posix_mknod 함수는 특정 디렉토리에 파일을 생성하는 함수로, mode와 dev 인자가 사용됩니다.

    mode 인자는 파일의 권한을 지정하는 데 사용됩니다. 권한은 owner, 그룹, 기타 사용자로 나누어지며, 읽기, 쓰기, 실행 권한이 있습니다. 예를 들어, S_IRUSR는 owner가 파일을 읽을 수 있는 권한을 의미합니다.

    dev 인자는 장치 파일의 major number와 minor number를 지정하는 데 사용됩니다. major number는 장치 파일의 종류를 나타내며, minor number는 장치 파일의 특정한 속성을 나타냅니다. 예를 들어, 장치 파일의 major number가 1이면, 장치 파일은 블록 장치 파일을 의미합니다.

    예를 들어, posix_mknod 함수를 사용하여 블록 장치 파일을 생성할 때, mode 인자는 파일의 권한을 지정하고, dev 인자는 장치 파일의 major number와 minor number를 지정합니다.

    #hostingforum.kr
    c
    
    int posix_mknod(const char *pathname, mode_t mode, dev_t dev);
    
    


    위의 예제에서, mode 인자는 0644로 지정되고, dev 인자는 1, 0으로 지정됩니다. 이 경우, 블록 장치 파일이 생성되고, owner가 읽기, 쓰기 권한을 가지며, 그룹과 기타 사용자는 읽기 권한만을 가집니다.

    #hostingforum.kr
    c
    
    int posix_mknod("/dev/block_device", 0644, makedev(1, 0));
    
    


    이러한 예제를 통해, posix_mknod 함수의 mode와 dev 인자가 어떻게 사용되는지 이해할 수 있습니다.

    2025-07-11 14:17

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

검색

게시물 검색