歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下FILE結構與“File descriptor”的區別

Linux下FILE結構與“File descriptor”的區別

日期:2017/2/28 14:56:27   编辑:Linux教程

在學習Linux,在Linux下使用c語言練習系統調用的時候,經常會遇到與文件相關的操作。一般來講打開一個文件我們會得到這個文件對於的文件描述符fd“file descriptor”;另外在另一些系統調用裡我們又常常遇到FILE這個結構。不知道最初是為什麼,反正我一直認為這兩者是完全一樣的東西,FILE只不過是typedef後的int而已。直到有一天上機時遇到了奇怪的問題,才被迫在man中詳細讀了file descriptor相關的東西,才發現這兩者不是一回事,而且兩者混用的情況是不推薦的,很容易帶來意想不到的問題。

另外通過搜索,我找到了兩個相關的函數:

fdopen():可以返回fd對應得(FILE *)結構而

fileno() 則恰恰相反,可以返回FILE*結構對應得 file descriptor。

希望這些信息能對大家有用~

Copyright © Linux教程網 All Rights Reserved