컴공 전공 공부
[3] 시스템프로그래밍 -FILE IO(2) 본문
*System Calls
-kernel에 직접적인 접근
Library Calls
- kernel에 접근할 수 있는 하나의 계층을 더 둠
*inode: 각각의 file system의 file은 하나의 inode를 가지고 있다.
-파일 시스템 매체에서 파일을 구분하기 위해 쓰는 것
*inode contents: inode 하나가 하나의 파일이 된다.
-file name
-file type
-file owner id
-access permission
-creation/modified time: 파일 수정 및 생성 시간
-file size
-file data block addr .table :실제 파일이 disk의 어디에 저장되어 있는지
*FILE types
-regular file: 일반파일(text, binary files, images, audio files)
-directory file : 자신이 갖고 있는 파일의 list 정보를 가지고 있음
-FIFO file(pipe)
-special files
:Character special files- 접근을 할 수 있는 매개체 , 통로(keyboard,mouse) /Block special files - 큰 용량의 데이터를 주고받는 것들(HDD file systems)
-symbolic link files: 다른 파일을 우회하여 접근할 수 있는 파일(접근 경로)
*File descripter: a process can open 1024 files : 너무 많은 파일에 접근할 시 더이상 접근할 수 없다. user마다 열 수 있는 파일 개수를 제한시킴.
*FILE OPEN


*FILE ACCESS MODE

*FILE CLOSE

*FILE CREATION

*FILE SEEKING

->새롭게 지정된 offset 값 반환
*FILE READING

1.(읽어서 저장될 BUFFER 공간 마련된 후) 데이터를 읽어옴
2.버퍼 포인터로 전달
3.실제 읽은 데이터를 byte 형태로 받아 개수를 반환
*FILE WRITING

1.read 와 반대로 미리 쓸 데이터가 buffer에 기록되어야 함
2.버퍼 포인터를 넘겨줌
3.쓸 데이터 양을 byte 크기로 써줌
->쓴 데이터의 byte 개수만큼 반환이 됨
*Duplication of file descriptor
: 동일한 파일에 대해 중복된 파일 descripter를 만들 수 있는 system call api

*LINK
1. Symbolic link: 원본 파일에 대해서 파일의 이름에다가 link를 걸음->실제적 내용이 아님
-path만 가지고 내용이 없어 target file이 지워진다면 symbolic link는 파일 접근 방법이 없어짐
2.Hard link: 원본 파일을 file system에서의 inode를 가리키는 정보를 가진 파일 생성
-inode를 가리켜 해당 원본 file이 update 되더라도 정보가 저장되며, 지워지더라도 남아 정보 접근 가능

*chmod 0755 testfile
0 : setuid(4),setgid(2), sticky bit(1) 특수권한 모두 다 0으로 설정
sticky bit(1) - 특정 directory에서 모든 user이 생성가능하며, 접근 가능하게 함.
7 : 소유자 접근 권한rwx
5 : 그룹 소유자 접근 권한 r-x
5 : 기타 사용자 접근 권한 r-x
*Process 's creator
-getuid: user id를 가져옴
-getgid: group id를 가져옴
-geteuid: effective user id를 가져옴(file owner's id)
*File access permission


*umask() - changes the default permission
:파일의 기본 permission 설정을 할 수 있게 함
$umask 0022 ->a new file permission is set to 0644 :설정하고 싶지 않은 값을 넣어줌
*Ownership change

chown- 특정 파일에 대한 소유주 설정/ 디렉토리 권한 설정
lchown- 일반 file의 경우 동일하게 동작하지만symbolic 파일은 파일 자체에 대한 소유주 결정함
fchown- 경로의 파일에 대한 권한
*readlink() - 해당 링크의 원보파일 이름을 알아내는 것
*File information retrieval
ㆍstat - pathname으로 주어진 경로이름에 해당하는 파일에 대한 정보를 둘째 인수인 buf 구조체를 통해 얻는다.
ㆍfstat - 파일 디스크립터 filedes에 대해 이미 열려 있는 파일에 대한 정보를 조회한다.
ㆍlstat – 지정된 파일이 심볼릭 링크(Symbolic link)이면 그 링크가 가리키는 파일이 아니라
그 링크 자체에 대한 정보를 돌려준다.
'시스템 프로그래밍' 카테고리의 다른 글
| [2]File IO: Standard I/O Library (0) | 2022.06.11 |
|---|