Add lwevent_cloexec()
This commit is contained in:
parent
dfb8feedfd
commit
e617f1b835
|
@ -26,6 +26,25 @@ int lwevent_nonblock(int fd)
|
|||
|
||||
|
||||
|
||||
/* lwevent_cloexec()
|
||||
* Uses fcntl(2) to set FD_CLOEXEC for `fd'. No-op if it is already set. Does not affect any other
|
||||
* file status flags.
|
||||
*/
|
||||
int lwevent_cloexec(int fd)
|
||||
{
|
||||
long flags;
|
||||
|
||||
flags = TEMP_FAILURE_RETRY( fcntl(fd, F_GETFD) );
|
||||
if(flags == -1) return -1;
|
||||
|
||||
if(flags & FD_CLOEXEC) return 0;
|
||||
|
||||
flags |= FD_CLOEXEC;
|
||||
return TEMP_FAILURE_RETRY( fcntl(fd, F_SETFD, flags) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* options for text editors
|
||||
kate: replace-trailing-space-save true; space-indent true; tab-width 4;
|
||||
vim: expandtab:ts=4:sw=4
|
||||
|
|
|
@ -30,6 +30,20 @@ int lwevent_nonblock(int fd) __attribute__((warn_unused_result));
|
|||
|
||||
|
||||
|
||||
/*! \brief Set file descriptor to close on exec().
|
||||
|
||||
\param fd File descriptor.
|
||||
\retval 0 on success.
|
||||
\retval -1 on error (and see \a errno).
|
||||
|
||||
This function is provided to switch the file descriptor \a fd into close-on-exec mode using
|
||||
\c fcntl(2).
|
||||
|
||||
*/
|
||||
int lwevent_cloexec(int fd) __attribute__((warn_unused_result));
|
||||
|
||||
|
||||
|
||||
/*!@}*/
|
||||
/* options for text editors
|
||||
kate: replace-trailing-space-save true; space-indent true; tab-width 4;
|
||||
|
|
Loading…
Reference in New Issue