리눅스

chapter03 파일과 디렉토리 (01,02,03,04)

정지홍 2023. 3. 3. 14:00

파일은 일반 파일, 특수 파일, 디렉토리로 구분할 수 있다.

파일은 파일명, 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