麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 操作系統 > 正文

文件描述符和文件指針的區別

2024-06-28 16:05:06
字體:
來源:轉載
供稿:網友

1.什么是文件描述符?


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

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

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

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

文件描述符在形式上是一個非負整數,實際上,它是一個索引值,指向內核為每一個進程所維護的該進程打開文件的記錄表。當程序打開一個現有文件或者創建一個新文件時,內核向進程返回一個文件描述符。在程序設計中,一些涉及底層的程序編寫往往會圍繞著文件描述符展開。但是文件描述符這一概念往往只適用于UNIX、Linux這樣的操作系統。

正因為對于linux來說,一切皆是文件的思想,所以,文件描述符為該系列平臺上進行設備相關的變成實際上提供了統一的方法。

注意: 文件描述符只有在linux下記為0,1,2,在其他系統是不一樣的,例如在windows系統下,文件描述符和信號量、互斥鎖等內核對象一樣都記作HANDLE。所以文件描述符的概念只在Linux和UNIX系統上可以用來使用。

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

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

2.文件指針


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

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

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

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

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

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

3.文件描述符和文件指針的轉換

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

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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青青草成人影视 | 麻豆一区二区99久久久久 | 91精品国产乱码久久久久久久久 | 久久国语对白 | 免费的性生活视频 | 久久久久久中文字幕 | 久久综合入口 | 天堂成人国产精品一区 | 免费毛片a线观看 | 久久精品日本一区 | 国产免费高清 | 91麻豆精品国产91久久久无需广告 | 欧美精品国产综合久久 | 欧美日韩一区三区 | 欧美激情精品久久久久久黑人 | 久草手机在线观看视频 | 18视频在线观看娇喘 | 欧美三级毛片 | 亚洲精品久久久久久久久久久 | 久久久综合久久久 | 日韩中字幕 | 91成人免费视频 | 国产精品高潮视频 | 国产免费高清在线视频 | 亚洲aⅴ免费在线观看 | 毛片在线免费播放 | 午夜热门福利 | 久久国产一级片 | 国产亚洲精品yxsp | 视频一区二区三区在线播放 | www.91成人| av成人在线免费观看 | 男女无遮挡羞羞视频 | 一区国产在线观看 | 亚洲影院在线 | 一级全毛片 | 九九色在线观看 | 污黄视频在线播放 | 日本中文视频 | 99精品电影 | 狠狠色噜噜狠狠狠米奇9999 |