文件描述符的半关闭

针对任意一个FILE指针调用fclose时都会关闭文件描述符,也就是终止套接字

要销毁所有文件描述符后才能销毁套接字

此时调用fclose后还剩一个文件描述符,因此没有销毁套接字。然而,并不意味着进入了半关闭状态,这只是准备好了半关闭的环境。要进入真正的半关闭状态需要进行特殊处理。

文件描述符的复制

#include <unistd.h>

int dup(int fildes);
int dup2(int fildes, int fildes2);
/**
 * fildes:  需要复制的文件描述符
 * fildes2: 明确指定的文件描述符整数值
*/

成功则返回复制的文件描述符,失败则返回-1

dup2函数的fildes2,想起传递大于0且小于进程能生成的最大文件描述符值时,改制将成为复制后得到的文件描述符值。example