O_APPEND의 기능

왜 이것을 사용하고 있습니까?

시스템 소프트웨어를 연구하는 데 있어 사소한 이상함일 수 있지만 open() 함수 플래그 아래에 있는 O_APPEND의 정확한 함수를 몰랐습니다.

그래서 정확한 뜻을 찾아봤습니다.

즉, O_APPEND 플래그를 추가하면 파일 오프셋은 쓰기 시 자동으로 파일의 끝으로 이동합니다.

참고로 파일에 내용을 추가하는 추가 행위는 파일 공간 이상을 요구할 때 자동으로 용량을 늘린다.

깨끗한 코드를 위해

원본을 파괴하지 않고 파일에 무언가를 추가하려면

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

이렇게 파일 오프셋을 설정하는 것은 번거로운 일입니다.

그러나 첨부

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

구현이 매우 쉬워짐 → 코드 효율성 증가