
posix_mknod 함수에서 mode 변수는 파일의 권한을 지정하는 데 사용됩니다. mode 변수의 값은 3자리 이진수로 구성되며, 각 자리는 다음과 같이 의미를 갖습니다.
- 최상위 비트 (8의 제곱): S_ISUID (소유자 ID 설정)
- 2번째 비트 (4의 제곱): S_ISGID (그룹 ID 설정)
- 3번째 비트 (2의 제곱): S_ISVTX (스태틱 디렉토리)
- 4번째 비트 (1의 제곱): S_IRUSR (읽기 권한, 소유자)
- 5번째 비트 (1의 제곱): S_IWUSR (쓰기 권한, 소유자)
- 6번째 비트 (1의 제곱): S_IXUSR (실행 권한, 소유자)
- 7번째 비트 (1의 제곱): S_IRGRP (읽기 권한, 그룹)
- 8번째 비트 (1의 제곱): S_IWGRP (쓰기 권한, 그룹)
- 9번째 비트 (1의 제곱): S_IXGRP (실행 권한, 그룹)
- 10번째 비트 (1의 제곱): S_IROTH (읽기 권한, 기타)
- 11번째 비트 (1의 제곱): S_IWOTH (쓰기 권한, 기타)
- 12번째 비트 (1의 제곱): S_IXOTH (실행 권한, 기타)
mode 변수의 값이 0이면, 파일 타입은 디렉토리 또는 특수 파일로 결정됩니다. 이때, 디렉토리 또는 특수 파일은 다음 조건 중 하나를 만족할 때 결정됩니다.
- S_ISDIR (S_IFMT & mode == S_IFMT) : 디렉토리
- S_ISFIFO (S_IFMT & mode == S_IFIFO) : FIFO
- S_ISREG (S_IFMT & mode == S_IFREG) : 일반 파일
- S_ISLNK (S_IFMT & mode == S_IFLNK) : 심볼릭 링크
- S_ISSOCK (S_IFMT & mode == S_IFSOCK) : 소켓
mode 변수의 값이 0이 아닌 경우, 파일 타입은 mode 변수의 값에 따라 결정됩니다. 예를 들어, mode 변수의 값이 0x1000 (400, 8진수 0400)인 경우, 파일 타입은 FIFO로 결정됩니다.
2025-03-20 19:39