学习,记录。
int dup2(int oldhandle, int newhandle);
函数功能:
复制文件句柄,newhandle指定的dup2和dup的区别就是可以用newfd参数指定新描述符的数值,如果newfd已经打开,则先将其关闭。如果newfd等于oldfd,则dup2返回newfd, 而不关闭它。dup2函数返回的新文件描述符同样与参数oldfd共享同一文件表项。
关键部分实现思路:
先close关闭需要复制到的文件描述符newdup。
连续dup,每dup一次产生的新的fd记录下来。
当新产生的fd等于需要产生的fd的时候,跳出循环,并把前面产生的fd全都close掉,返回该描述符。
注释挺详细,看注释吧
执行结果:
