原帖由 gvim 于 2006-5-18 21:33 发表
我没有看这个练习,不过,题目允许可以用dup吗?
另外,好像逻辑有错吧?如果my_dup2(10,5)可以运行吗?
原帖由 balabalacha 于 2006-5-19 14:01 发表
果然清晰:)
那不要递归是不是还要找个空间存放dup出来的fd,最后再close就行了?
原帖由 balabalacha 于 2006-5-20 09:58 发表
另外,我还想到:
以7楼的代码为例(我的是错的*^_^*),假设运气好,在这儿成功
复制代码
- assert(fd == newfd); /* reasonable */
- return fd;
而在此之前还经过了N次递归过程,现在由 ...
原帖由 gvim 于 2006-5-20 11:07 发表
看这个逻辑
fork() ---> fdinit() ---> newfd = malloc(......) ---> 初始化一些东西。
可以看出来每个进程自己分配的有空间存放这些东西。
当然描述符表还有这两个操作,fdcopy()/fdshar ...
原帖由 balabalacha 于 2006-5-20 11:46 发表
还没学到那呢,现在正在看第4章,谢谢各位的指导
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |