socket close_on_exec
父进程fork子进程后,子进程会复制父进程的socket描述符。如果想让子进程在exec时,释放掉所拥有的父进程的socket描述符,可以设置父进程的socket close_on_exec特性。
if( fcntl(iSockFd, F_GETFD, arg) < 0 ) /* 这个很重要,要不下面设置不成功 */
{
exit(-1);
}
arg |= FD_CLOEXEC;
if( fcntl(iSockFd, F_SETFD, 1) < 0 )
{
exit(-1);
}