濮阳杆衣贸易有限公司

主頁 > 知識庫 > 詳解Linux下的文件標述符和文件指針

詳解Linux下的文件標述符和文件指針

熱門標簽:梧州防封電銷卡 上海機器人外呼系統(tǒng)哪家好 春運地圖標注app 400的電話一般從哪里辦理 怎么用百度地圖標注坐標 昆明電銷機器人價格 益陽400電話申請辦理流程 江西全自動外呼系統(tǒng)報價 地圖標注人員分布

   Linux下的文件標述符和文件指針

文件標識符:

首先我們來了解一下文件標識符是什么東西?

文件描述符是計算機科學中的一個術語,是一個用于表述只想文件的引用的抽象化概念。

在linux當中,每個進程會在進程控制塊(PCB)當中保存著一份文件描述符表,文件描述符就是這個表的索引,每個表都有一個指

向已經打開文件的指針。

每個linux進程都應該有三個標準的文件描述符,對應三個標準流。

整數(shù)值 名稱 (unistd.h)符號常量 (stdio.h)文件流
0 Standard input STDIN_FILENO stdin
1 Standard output STDOUT_FILENO stdout
2 Standard error STDERR_FILENO stderr

文件描述符在形式上是一個非負整數(shù),實際上,它是一個索引值,指向內核為每一個進程所維護的該進程打開文件的記錄表。當程

序打開一個現(xiàn)有文件或者創(chuàng)建一個新文件時,內核向進程返回一個文件描述符。在程序設計中,一些涉及底層的程序編寫往往會圍

繞著文件描述符展開。但是文件描述符這一概念往往只適用于UNIX、Linux這樣的操作系統(tǒng)

與文件描述符相關的操作:

功能 操作
文件描述符生成 open()、socket()、pipe()等
與單一文件描述符相關的操作 read()、write()、send()、fchmod()等
與復數(shù)文件描述符相關的操作 select()、poll()等
與文件描述符表相關度的操作 close()、dup()等

文件指針:

文件指針是C語言當中我們所學習的東西,C語言當中用一個指針變量指向一個文件,這個指針就被稱為文件指針。通過文件指針我們可以對所指的文件進行各種的操作。C語言當中使用的是文件指針而不是文件描述符做為I/O的句柄。文件指針指向進程用戶區(qū)中的一個被稱為FILE結構的數(shù)據(jù)結構。FILE結構包含一個緩沖區(qū)和一個文件描述符。

文件指針式C語言的通用的格式,所以相對來說,更加便于移植.

我們通常來獲取文件指針:

FILE *fp = fopen("test.txt","r");

獲取到指針以后,我們就可以獲得指針當中文件描述符的信息。

文件描述符是唯一的,但是文件指針不是唯一的,文件指針指向的對象是唯一的。

文件標述符和文件指針的轉換:

int fileno(FILE *stream);

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

fdopen第一個參數(shù)是一個打開的文件描述符,mode是表示打開方式的字符串,和fopen相同,比如說“w”或者“r”.

fileno函數(shù),它返回和文件流對應的文件描述符,失敗返回-1。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • linux kernel 打印函數(shù)指針對應的函數(shù)名方法
  • Linux中文件描述符fd與文件指針FILE*互相轉換實例解析

標簽:九江 贛州 懷化 新疆 惠州 亳州 北京 河南

巨人網絡通訊聲明:本文標題《詳解Linux下的文件標述符和文件指針》,本文關鍵詞  詳解,Linux,下,的,文件,標述,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解Linux下的文件標述符和文件指針》相關的同類信息!
  • 本頁收集關于詳解Linux下的文件標述符和文件指針的相關信息資訊供網民參考!
  • 推薦文章
    连山| 旅游| 南通市| 贵定县| 乌拉特中旗| 淳安县| 沈丘县| 水富县| 娄底市| 迁西县| 临高县| 绵阳市| 隆林| 龙川县| 山阴县| 抚州市| 景泰县| 新泰市| 乡城县| 阿瓦提县| 来安县| 得荣县| 昌都县| 长武县| 麦盖提县| 岳西县| 廊坊市| 通渭县| 高州市| 弋阳县| 乐清市| 宣武区| 蒲城县| 尤溪县| 绥化市| 永靖县| 荆门市| 大埔区| 建昌县| 夏邑县| 宁蒗|