[结贴]fork()出来的子进程会继承父进程的fd,那么还要dup()做什么呢?
本帖最后由 sentto2 于 2015-03-06 15:56 编辑感觉dup()函数有点多余啊。我的理解是不是有误? 不一样
比如A进程是父进程,B进程是子进程(通过fork产生)
则A中的文件描述符号会被B进程继承(复制父进程的文件描述符号表)
则A进程打开文件file.txt的描述符号如果为5,则B中打开这个文件描述符也为5
如果使用dup(),将会产生一个文件描述符,指向相同的一个文件
比如dup(5)可能会得到7,则5和7指向相同的file.txt
zsszss0000 发表于 2015-03-05 11:10 static/image/common/back.gif
不一样
比如A进程是父进程,B进程是子进程(通过fork产生)
则A中的文件描述符号会被B进程继承(复制父进 ...
所以我就想不明白dup由什么作用呢,在父子进程通信中不需要任何dup,两个进程就可以操作同一个fd啊 回复 4# sentto2
重定向
回复 4# sentto2
你想想这个是怎么实现的 就懂dup的作用了
cat aaa.file>bbb.file
dup不是为了在父子进程之间通讯的。回复 4# sentto2
皮波,这个是怎么实现的?回复 6# super皮波
回复 8# zsszss0000
把bbbdup到标准输出,cat到标准输出的内容不就到了bbb中了嘛
页:
[1]