파일은 일반 파일, 특수 파일, 디렉토리로 구분할 수 있다.
파일은 파일명, inode , data block으로 구성.
일반 파일
-대부분의 파일이 해당
-텍스트 파일, 실행 파일 등 텍스트나 바이너리 형태의 데이터를 저장하고 있는 파일
특수 파일
-유닉스에서 장치를 사용하려면 해당 장치와 관련 특수 파일을 사용해야한다.
장치 파일
-장치 관련 특수 파일
-데이터블록을 사용하지 않는다. 대신에 장치의 종류를 나타내는 장치 번호를 inode에 저장.
-ls -l명령어를 사용하면 다른 파일과 다르게 출력하며 뒷부분에 번호가 나오는데 이는 장치 번호다. 이 장치 번호 뒤에 따르는 숫자 0 혹은 1 같은 숫자는 장치의 개체 수를 의미하며 전자를 주 장치 번호 major device number, 후자를 부 장치 번호minor device number라 부른다.
- 블록 장치:블록 단위로 데이터를 읽고 쓴다.
- 문자 장치:로우 디바이스라고도 한다.
디렉토리
-해당 디렉토리에 속한 파일들을 관리하는 특별한 파일
-디렉토리의 구조는 트리이다.
-mkdir로 생성
-rmdir로 삭제
-cp -r로 복사

파일명
-사용자가 파일에 접근할때 사용
-반드시 파일명과 관련 inode가 존재해야함
-파일과 디렉토리 이름에는 알파벳,숫자,하이픈,밑줄,점만 사용
-파일 or 디렉토리의 이름이 점으로 시작하면 숨김 파일이다.
-알파벳은 대소문자 구분함.
inode
-inode는 외부적으로 번호로 표시
-파일 소유자 혹은 크기 등 파일에 관한 정보와 파일의 실제 데이터를 저장하고 있는 데이터 블록의 위치를 나타내는 주소들 저장
-파일의 정보(파일의 종류, 접근 권한, 하드 링크 개수, 소유자의 UID와 GID, 파일의 크기, 파일 접근 시각 및 수정 시각, 파일의 inode변경 시각 등)들을 저장.
data block
-실제로 데이터가 저장되는 하드디스크의 공간
int stat(const char * restrict path 정보를 알고자 하는 파일명, struct stat *buf검색힌 파일 정보를 저장할 구조체 주소)


int fstat(int fd 열려 있는 파일 기술자 , struct stat *buf 검색한 파일 정보를 저장할 구조체 주소 );


파일의 종류 검색
-아래는 상수를 이용항 파일 종류를 검색한다.


매크로를 이용하여 파일 종류를 검색한다. 여기서 매크로는 posix표준이다.

파일 접근 권한 검색

함수를 사용한 접근 권한 검색
int access(const char *path 접근 권한을 알고자 하는 파일의 경로, int amode접근 권한);
- R_OK:읽기 권한 확인
- W_OK:쓰기 권한 확인
- X_OK:실행 권한 확인
- F_OK:파일 존재 여부 확인

파일 접근 권한 변경
int chmod(const char *path , mode_t mode접근 권한);
-접근 권한을 조정할 수도 있다.(접근 권한을 더하려면 OR연산을, 제거하려면 권한의 상수 값을 NOT연산후 AND연산 실행)
int fchmod(int fd열려있는 파일 기술자 , mode_t mode접근 권한);
'리눅스' 카테고리의 다른 글
| chapter03 파일과 디렉토리 (06) (0) | 2023.03.08 |
|---|---|
| chapter03 파일과 디렉토리 (05) (0) | 2023.03.05 |
| chapter02 파일 입출력(04,05) (0) | 2023.02.15 |
| chapter02 파일 입출력(03) (0) | 2023.02.12 |
| chapter02 파일 입출력(01,02) (2) | 2023.02.10 |