-
[Unix] 파일 상태 정보운영체제/Unix 2019. 5. 8. 22:18
파일 시스템
- 파일 시스템의 구현
- 파일 상태 정보
- 디렉터리
- 링크
5.2 파일 상태 정보
- 파일 상태
- 파일에 대한 모든 정보
- 파일 타입, 접근 권한, 링크수, 소유자와 사용자 ID, 그룹, 파일 크기, 최종 수정시간, 파일 명 등
- $ls -l 하면 된다
drwxr_xr_x 2 ckdtjs505 other 512 4월 8일 21:59 blog 파일 타입 링크수 사용자ID 그룹ID 파일크기 최종 수정시간 파일 이름 파일의 상태 정보에 대해 간단하게 알아보았다. 파일 상태 정보의 모든 내용은 i-node가 가지고 있다는 것을 다시 한번 명심하자.
- 파일 타입
- 메크로 함수
- 메크로 함수 선언 위치 : /usr/include/sys/stat.h
간단하게 메크로 함수를 이해해보자.
비트 연산과 8진법이 있어서 처음에 이해하기 어려울 수 있지만 천천히 해보자
파일의 타입은 -rwxr-xr-x라고 가정하자. 컴퓨터가 어떻게 -rwxr-xr-x를 표현하는 확인 하자.
Mode의 값은 100755가 된다. 현제 출력된 100755는 8진수 값이다 2진수로 바꿔주면
1 0 0 7 5 5 1 000 000 111 101 101 - x rwx r-x r-x 파일 타입 특수용도 소유자 그룹 기타 사용자 결론적으로 1 000 000 111 101 101이 의미하는 바가 -rwx-r-xr-x 된다.
원하는 대로 결과가 나오는 것을 확인했다. 앞의 4개의 숫자가 파일 타입이라는 것을 알 수 있었다.
#define S_ISREG(mode) (((mode)&0xF000) == 0x8000)
- mode의 값은 (100755) & 0 xF000
- mode의 값은 8진수, 0 xF000은 16진수 이 두 개를 & 비트 연산을 하기 위해 2진수로 변경한다
F 0 0 0 1111 0000 0000 0000 1 0 0 7 5 5 1 000 000 111 101 101 3. 1000 0001 1110 1101 & 1 111 000 000 000 = 1000 000 000 000 이 됨을 알 수 있다
4. 1000 000 000 000을 16진법으로 바꾸면 0x8000이 된다. 따라서 일반 파일임을 확인한다.
- 접근 권한
- chmod(), fchmod() : 파일의 접근 권한을 변경한다.
- chown() : 파일의 userID와 groupID를 변경한다.
- utimle() : 파일 filename의 최종 접근 시간과 최종 수정 시간을 새로 설정한다.
728x90'운영체제 > Unix' 카테고리의 다른 글
[Unix] 시그널 처리 (0) 2019.05.14 [Unix] 시그널 (0) 2019.05.14 [Unix] 파일 잠금 함수 : fcntl() (0) 2019.05.08 [Unix] 파일 및 레코드 잠금 (0) 2019.05.08 [Unix] 링크 (0) 2019.05.07