socket close_on_exec
父進(jìn)程fork子進(jìn)程后,子進(jìn)程會(huì)復(fù)制父進(jìn)程的socket描述符。如果想讓子進(jìn)程在exec時(shí),釋放掉所擁有的父進(jìn)程的socket描述符,可以設(shè)置父進(jìn)程的socket close_on_exec特性。
if( fcntl(iSockFd, F_GETFD, arg) < 0 ) /* 這個(gè)很重要,要不下面設(shè)置不成功 */
{
exit(-1);
}
arg |= FD_CLOEXEC;
if( fcntl(iSockFd, F_SETFD, 1) < 0 )
{
exit(-1);
}