请问 dup(fd1, fd2) 和 fd2=fd1的区别
在Linux中,有这样一个复制文件描述符的函数dup(fd1, fd2),作用是将fd1复制给
fd2. 小弟有个疑问:如果将fd1直接赋值给fd2(fd2=fd1)不也是一样的吗?
它们之间有什么区别吗?
请各位大大指教!
------解决方案--------------------dup2(fd1, fd2)后,fd1和fd2的值不同,但都指向打开的同一文件。
fd1=fd2后,fd1和fd2相同。
比如要把输出到屏幕的结果重定向到文件中,就可以用到dup2。
因为printf之类的函数总是往1号fd中写,我们可以:
dup2(filefd,1);
然后printf的输出就到filefd指定的文件中了。