基本思路就是使用dup尋找當前最小可用檔案描述符,找到後與將要重定向的目標檔案描述符進行比對,若比對成功則跳出,否則則將該檔案描述符存入陣列,待定位成功後依序close。
**如下,main中實現了書中的例程3.11(從標準輸入到標準輸出):
/*
* @author: jjerry
* @date: 2019-01-07 11:25:27
* @desciption: try to implement dup2
*/#include
#include
#include
#define bufsize 4096
intdup_own
(int fd1,
int fd2)
flag=
1,i=0;
while
(flag)
return fd2;
}int
main()
if(n<0)
}}
曾冒出了乙個直接dup,dup後不匹配則直接close的想法,後來想到了這樣可能除了標準輸入和標準輸出兩種特殊女情況外肯定會發生死迴圈,因為一旦這兩個檔案描述符未被占用,則最小的一定就是這兩個情況,進而發生死迴圈。
結果如下:
第三章 習題三
需求規格說明書在軟體開發中具有重要的作用,它也可以作為軟體可行性分析的依據.f 需求分析的主要目的是解決軟體開發的具體方案.f 需求規格說明書描述了系統每個功能的實現.f 非功能需求是從各個角度對系統的約束和限制,反映了應用對軟體系統質量和特性的額外要求.t 需求評審人員主要由開發人員組成,一般不包...
《APUE》第三章筆記(1)
以下內容是我看 apue 第二版第三章的筆記,有錯還希望指出來,謝謝。unbuffered i o,跟buffered i o相對,buffered i o就是 iso c標準下的標準輸入輸出函式,而unbuffered i o就是posix下的函式。檔案描述符,個人理解就相當於linux下的uid...
APUE 第三章 檔案I O
linux對檔案操作有open read write close lseek,這些api都是不帶緩衝的函式,相對於c庫,這些可移植的api內部實現是有緩衝區的。int open char pathname,int flag,int read int fd,void buf,size t size i...