본문 바로가기
Ubuntu

C 기본 함수

by junhykim 2022. 11. 22.

파일디스크립터(File Descriptor)

- 리눅스와 유닉스에서 시스템 관리를 위해 파일로 처리하여 관리함

시스템에서 프로세스가 파일에 접근하기 위한 방법으로 파일 디스크립터(File Descriptor)를 핸들로 사용

ex) 파일 open 시 파일 디스크립터는 0~N까지 순차적으로 숫자를 부여 받음, 프로세스가 메모리에서 실행을 시작할 때 기본적으로 할당됨

 

기본 할당 파일 디스크립터

0 : 표준 입력(Standard Input) / STDIN_FILENO

1 : 표준 출력(Standard Output) / STDOUT_FILENO

2 : 표준 에러(Stantdard Error) / STDERR_FILENO

 

파일 디스크립터 생성 시 기본 할당 파일 디스크립터를 제외하고 3번 부터 차례대로 할당 받음

 

Open 함수

ssize_t open(chonst char *pathname, int flags);

헤더 : fcntl.h

pathname : 파일의 경로와 이름으로, 절대경로의 파일명과 상대경로의 파일명 모두 허용

flags : 파일 열기 시 옵션 (읽기 전용 : O_RDONLY, 쓰기 전용 : O_WRONLY)

return 값 : success 시  양수, fail 시 음수

 

 

Close 함수

ssize_t close(int fd);

fd : close를 실행하는 프로세서의 fd(파일스크립터) 값을 받음

return 값 : close 성공시 0, 실패라면 -1

 

 

Read 함수

ssize_t read(int fd, void *buf, size_t nbytes);

헤더 : unistd.h

fd : 파일 디스크립터

buf : 파일을 읽어 들일 버퍼

nbytes : 버퍼 사이즈

return 값 : success 시 읽어들인 바이트 수, 실패 시 -1 반환

 

write 함수

ssize_t write(int fd, const void* buf, size_t nbytes);

헤더 : unistd.h

fd : 파일 디스크립터

buf : 파일 쓰기 내용을 담은 버퍼

nbytes : 버퍼 사이즈

return 값 : success 시 bytes 수, 실패 시 -1 반환

 

 

 

참조 open, close, read 함수에 대하여 (tistory.com)

 

'Ubuntu' 카테고리의 다른 글

GNU/GCC/G++ 컴파일러  (0) 2023.01.27