C 언어에서 파일 번호를 복제하면서 새 프로그램 실행 시 자동으로 닫히게 하고 싶다면 dup3()의 O_CLOEXEC를 사용한다.
헤더와 선언
#include <unistd.h>
#include <fcntl.h>
int dup3(int oldfd, int newfd, int flags);반환값과 주의점
성공하면 newfd, 실패하면 -1이다. 지원 플래그는 O_CLOEXEC다.
dup2()와 달리 oldfd와 newfd가 같으면 오류다. 복제 후 따로 플래그를 설정하는 틈을 줄일 수 있다.
답글 달기