본문 바로가기
CS/System Software

O_APPEND의 기능

by gamxong 2023. 3. 12.

이걸 왜 써?

시스템 소프트웨어 공부하면서 하찮은 호기심일 수 있지만 open() 함수의 플래그 중 O_APPEND의 정확한 기능을 알지 못했다.

그래서 정확한 의미를 알아보았다.

핵심만 말하자면 O_APPEND 플래그를 추가해주면 write할 때 알아서 파일의 끝으로 file offset이 간다.

참고로, 파일에 내용을 추가하는 append하는 행위는 파일 공간 넘게 요구하면 auto로 용량을 늘린다.

 

깔끔한 코드를 위해서

원래는 어떤 내용을 원본 훼손 없이 파일에 추가하기 위해서는

fd = open("abc.txt", ...);
lseek(fd, 0, SEEK_END);
write(fd, APPEND할 내용(buf), APPEND하고 싶은 SIZE);

이렇게 file offset를 설정해줘야 하는 번거로움이 있다.

하지만 APPEND는

fd = open("abc.txt", O_RDWR | O_APPEND);
write(fd, APPEND할 내용(buf), APPEND하고 싶은 SIZE);

아주 간단히 구현할 수 있게 된다 → 코드의 효율성 증가

'CS > System Software' 카테고리의 다른 글

fork() vs clone()  (0) 2023.03.12
좀비 프로세스 vs 고아 프로세스  (0) 2023.03.12
SRAM vs DRAM  (0) 2023.03.12
System call vs API  (1) 2023.03.12

댓글