file *fdopen(int fildes, const char *type);
這個函式很有用的,功能是將乙個流關聯到乙個開啟的檔案號filedes上,
該filedes可以是open、pipe、dup、dup2和creat等呼叫返回的結果
type指定流開啟方式,同fopen的開啟方式,如"a", "r","w"等等
fdopen的流開啟方式服從filedes的開啟方式,比如filedes的open指定o_rdonly,那麼fdopen也只能指定"r"的開啟方式了。
用fdopen的好處很明顯,如果你不得已只能開啟檔案號,比如socket或者dup呼叫,但又想用fprintf,fscanf等流操作來進行讀寫,那麼就再fdopen一次好了。
int fileno(file stream);
用fileno有什麼好處呢?你用fopen開啟了檔案,但是又想用flock或者lockf來給檔案加鎖,或者用fcntl來進行某些底層的操作,
但上述這些函式只能對開啟的檔案號操作,而不能對開啟流,這時候就用fileno再flock、lockf、fcntl好了。
檔案描述符和檔案流之間的轉換
file fdopen int fildes,const char type 這個函式很有用的,功能是將乙個流關聯到乙個開啟的檔案號filedes上,該filedes可以是open pipe dup dup2和creat等呼叫返回的結果 type指定流開啟方式,同fopen的開啟方式,如 a r w...
檔案流和 檔案描述符
include apue.h int glob 6 int main void else if pid 0 i printf pid d,glob d,var d n getpid glob,var sprintf buf,d n i write stdout fileno,buf,strlen b...
檔案流和檔案描述符
檔案流和檔案描述符 檔案流和 檔案描述符 2011 10 19 16 08 apue 中的一道課後題 習題8.1 include apue.h int glob 6 int main void else if pid 0 i printf pid d,glob d,var d n getpid gl...