2013-02-19 55 views
2

有沒有辦法將類型爲int(文件描述符)的變量轉換爲C中的FILE類型?我有一個開放的管道FD,我想使用期望FILE的功能。fileno轉換FILE描述符C

回答

5

你不能投它,但你可以叫fdopen(3),這不正是你想要什麼:

FILE * 
fdopen(int fildes, const char *mode); 

fdopen()功能流與現有文件描述符關聯,菲爾德斯 。流的模式必須與文件描述符的模式 兼容。當流關閉通過fclose(3),fildes是 也關閉。

+0

感謝Carl,fdopen最終會在fd上進行任何系統調用,還是隻會返回一個FILE流? – user1944224 2013-02-19 20:00:13

+0

@ user1944224,這可能與實施有關。 – 2013-02-19 20:00:41

1

在POSIX系統上,您可以使用fdopen構造指向文件描述符的FILE *