What does the FD_CLOEXEC fcntl() flag do?

前端 未结 2 1679
感动是毒
感动是毒 2020-11-28 04:24

Like so:

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

Though I\'ve read man fcntl, I can\'t figure out what it does.

2条回答
  •  感情败类
    2020-11-28 05:19

    It sets the close-on-exec flag for the file descriptor, which causes the file descriptor to be automatically (and atomically) closed when any of the exec-family functions succeed.

    It also tests the return value to see if the operation failed, which is rather useless if the file descriptor is valid, since there is no condition under which this operation should fail on a valid file descriptor.

提交回复
热议问题