2
有沒有辦法將類型爲int(文件描述符)的變量轉換爲C中的FILE類型?我有一個開放的管道FD,我想使用期望FILE的功能。fileno轉換FILE描述符C
有沒有辦法將類型爲int(文件描述符)的變量轉換爲C中的FILE類型?我有一個開放的管道FD,我想使用期望FILE的功能。fileno轉換FILE描述符C
你不能投它,但你可以叫fdopen(3)
,這不正是你想要什麼:
FILE * fdopen(int fildes, const char *mode);
的
fdopen()
功能流與現有文件描述符關聯,菲爾德斯 。流的模式必須與文件描述符的模式 兼容。當流關閉通過fclose(3)
,fildes是 也關閉。
在POSIX系統上,您可以使用fdopen
構造指向文件描述符的FILE *
。
感謝Carl,fdopen最終會在fd上進行任何系統調用,還是隻會返回一個FILE流? – user1944224 2013-02-19 20:00:13
@ user1944224,這可能與實施有關。 – 2013-02-19 20:00:41