programing

FD_CLOEXEC fcntl() 플래그의 기능은 무엇입니까?

prostudy 2022. 8. 27. 08:49
반응형

FD_CLOEXEC fcntl() 플래그의 기능은 무엇입니까?

다음과 같은 경우:

if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) {
...

읽었지만man fcntl그게 뭘 하는 건지 모르겠어요

파일 디스크립터의 close-on-exec 플래그를 설정합니다.이 플래그는 파일 디스크립터를 자동으로(및 원자적으로) 닫는 원인이 됩니다.exec·패밀리 기능은 성공.

또한 반환값을 테스트하여 조작이 실패했는지 여부를 확인합니다.이것은 유효한 파일 기술자에서는 이 조작이 실패하는 조건이 없기 때문에 파일 기술자가 유효한 경우에는 도움이 되지 않습니다.

파일 기술자에 마크를 붙여서close()프로세스 또는 하위 프로세스에서 자동으로 dfork()는, 다음의 어느쪽인가를 콜 합니다.exec*()기능 패밀리이는 파일 기술자가 에 의해 실행되는 랜덤 프로그램으로 유출되는 것을 방지하는 데 유용합니다. system().

언급URL : https://stackoverflow.com/questions/6125068/what-does-the-fd-cloexec-fcntl-flag-do

반응형