dup and dup2
复制一个现有的文件描述符
#include <unistd.h>
int dup(int fd);
int dup2(int fd, int fd2);
返回值:成功,返回新的文件描述符;出错,返回-1
注:
①dup返回新的文件描述符,该文件描述符一定是当前文件描述符集中的最小值
②dup2的fd2参数指定新的文件描述符的值,如果fd2已经打开,则先将其关闭。
③如果fd2等于fd,则dup2返回fd2,而不关闭它。如果fd2不等于fd,则将fd2的FD_CLOEXEC文件描述符标志清除,这样fd2在调用exec时是打开状态。