fcntl(fd, F_SETFD, FD_CLOEXEC); // 这里设置为FD_CLOEXEC表示当程序执行exec函数时本fd将被系统自动关闭,表示不传递给exec创建的新进程, 如果设置为fcntl(fd, F_SETFD, 0);那么本fd将保持打开状态复制到exec创建的新进程中
fcntl(fd, F_SETFD, FD_CLOEXEC); // 这里设置为FD_CLOEXEC表示当程序执行exec函数时本fd将被系统自动关闭,表示不传递给exec创建的新进程, 如果设置为fcntl(fd, F_SETFD, 0);那么本fd将保持打开状态复制到exec创建的新进程中
接下来可以调用fcntl函数,将F_SETFD命令传入cmd参数,并设置相应的标识。比如要设置文件描述符为close-on-exec,则可以将FD_CLOEXEC标识作为参数传入。 3. 使用文件描述符 在完成上述设置之后,就可以正常使用文件描述符进行读写等操作了。 在红帽Linux系统中,对文件描述符的操作是非常灵活和强大的。通过使用fcntl和F_S...
socketserver.TCPServer.__init__(self, addr, requestHandler, bind_and_activate)# [Bug #1222790] If possible, set close-on-exec flag; if a# method spawns a subprocess, the subprocess shouldn't have# the listening socket open.iffcntlisnotNoneandhasattr(fcntl,'FD_CLOEXEC'): flags = fcntl....