How to build a function like dup2 without fcntl?

April 10th, 2008 firenet Posted in c 3 Comments »

最近闲的无聊,开始看APUE,Richard Stevens的神作。

看到第三章的习题3.2,要求“编写一个与3.12节中dup2功能相同的函数,要求不调用fcntl函数,并且要有正确的出错处理。”

基本解决思路,利用dup不断执行,直到dup返回的fd是要求的fd即可。关键是出错处理,面临的基本问题是:不用fcntl,怎么知道一个fd是否已经打开呢?在fcntl的源码里面开了一下,补充了出错处理部分,但是觉得这样就没太大意思,基本就是照抄嘛。。。

代码在这儿

AddThis Social Bookmark Button