OPEN(2)
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
: open()함수는 int 형 정수를 반환하며, 음수의 숫자가 반환될 경우에는 파일 열기에 실패한 것이다.
파일을 성공적으로 열었다면 FD(file descriptor) 반환한다.
pathname은 파일의 이름
flag는 O_RDONLY(읽기전용), O_WRONLY(쓰기전용), O_RDWR(읽기쓰기)를 사용 하며, 자주 쓰이는 것들에는 O_CREAT, O_EXCL, O_TRUNC, O_APPEND, O_NONBLOCK, O_NDELAY 등이 있다.
mode는 S_IRWXU(소유자에게 읽,쓰,실 권한 부여), S_IRUSR(소유자에게 읽기 권한 부여), S_IRGRP(그룹에게 읽기 권한 부여) 등이 있다. 생략이 가능하며, 새로운 파일을 만드는 경우에만 사용
ex)
int fd;
fd = open("example.txt", O_RDONLY, S_IXUSR | S_IROTH);
READ(2)
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
: read()함수는 파일의 끝을 만나면 0 반환, 정상적으로 파일에 대한 내용을 읽어온다면 읽은 바이트 수를 반환, 실패하면 -1 반환
fd가 나타내는 파일에서 데이터를 읽음
buf는 읽은 데이터를 저장할 메모리의 시작 주소
len은 읽을 데이터의 바이트 수
ex)
int fd;
char buff[100];
fd = open("./test", O_RDONLY);
if (fd == -1)
printf("File Open Error\n");
read(fd, buf, sizeof(buf));
printf("%s\n", buf);
close(fd);
write(2)
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count)
: 성공적으로 처리된 데이터 갯수, 실패시 -1 반환
buf 버퍼에 쓸 내용
count 쓸 데이터의 길이
close()
#include <unistd.h>
int close(int fd)
: open()함수로 열기를 한 파일을 사용을 중지
정상적으로 close 했다면 0을 반환, 실패했으면 -1을 반환
'42 Seoul' 카테고리의 다른 글
[42Seoul] libft (part. 1) (0) | 2021.05.03 |
---|---|
[42Seoul] cat 구현하기 (0) | 2021.04.22 |
[42Seoul] basename 이름만 보이는 함수 (0) | 2021.04.22 |
[42Seoul] errno.h 변수를 이용한 오류처리 (0) | 2021.04.20 |
[42Seoul] makefile (0) | 2021.04.20 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!