亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Linux下的文件標(biāo)述符和文件指針

 更新時(shí)間:2017年05月19日 11:53:14   作者:Dawn_sf  
這篇文章主要介紹了詳解Linux下的文件標(biāo)述符和文件指針的相關(guān)資料,需要的朋友可以參考下

   Linux下的文件標(biāo)述符和文件指針

文件標(biāo)識(shí)符:

首先我們來(lái)了解一下文件標(biāo)識(shí)符是什么東西?

文件描述符是計(jì)算機(jī)科學(xué)中的一個(gè)術(shù)語(yǔ),是一個(gè)用于表述只想文件的引用的抽象化概念。

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

向已經(jīng)打開(kāi)文件的指針。

每個(gè)linux進(jìn)程都應(yīng)該有三個(gè)標(biāo)準(zhǔn)的文件描述符,對(duì)應(yīng)三個(gè)標(biāo)準(zhǔn)流。

整數(shù)值名稱(chēng)(unistd.h)符號(hào)常量(stdio.h)文件流
0Standard inputSTDIN_FILENOstdin
1Standard outputSTDOUT_FILENOstdout
2Standard errorSTDERR_FILENOstderr

文件描述符在形式上是一個(gè)非負(fù)整數(shù),實(shí)際上,它是一個(gè)索引值,指向內(nèi)核為每一個(gè)進(jìn)程所維護(hù)的該進(jìn)程打開(kāi)文件的記錄表。當(dāng)程

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

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

與文件描述符相關(guān)的操作:

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

文件指針:

文件指針是C語(yǔ)言當(dāng)中我們所學(xué)習(xí)的東西,C語(yǔ)言當(dāng)中用一個(gè)指針變量指向一個(gè)文件,這個(gè)指針就被稱(chēng)為文件指針。通過(guò)文件指針我們可以對(duì)所指的文件進(jìn)行各種的操作。C語(yǔ)言當(dāng)中使用的是文件指針而不是文件描述符做為I/O的句柄。文件指針指向進(jìn)程用戶(hù)區(qū)中的一個(gè)被稱(chēng)為FILE結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)。FILE結(jié)構(gòu)包含一個(gè)緩沖區(qū)和一個(gè)文件描述符。

文件指針式C語(yǔ)言的通用的格式,所以相對(duì)來(lái)說(shuō),更加便于移植.

我們通常來(lái)獲取文件指針:

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

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

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

文件標(biāo)述符和文件指針的轉(zhuǎn)換:

int fileno(FILE *stream);

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

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

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

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

相關(guān)文章

  • shell判斷變量是否含某個(gè)字符串的6種方法

    shell判斷變量是否含某個(gè)字符串的6種方法

    本文主要介紹了shell判斷變量是否含某個(gè)字符串的6種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • shell腳本編寫(xiě)的俄羅斯方塊游戲代碼

    shell腳本編寫(xiě)的俄羅斯方塊游戲代碼

    這篇文章主要介紹了shell腳本編寫(xiě)的俄羅斯方塊游戲代碼,非常強(qiáng)大,需要的朋友可以參考下
    2014-04-04
  • Linux 進(jìn)程替換(exec函數(shù))實(shí)現(xiàn)代碼

    Linux 進(jìn)程替換(exec函數(shù))實(shí)現(xiàn)代碼

    這篇文章主要介紹了Linux 進(jìn)程替換(exec函數(shù))實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 關(guān)于shell的幾個(gè)不為人知卻十分有用的命令分享

    關(guān)于shell的幾個(gè)不為人知卻十分有用的命令分享

    這篇文章主要介紹了關(guān)于shell的幾個(gè)不為人知卻十分有用的命令,需要的朋友可以參考下
    2016-03-03
  • Linux 下C語(yǔ)言獲取文件大小

    Linux 下C語(yǔ)言獲取文件大小

    這篇文章主要介紹了Linux 下C語(yǔ)言獲取文件大小的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • shell腳本ssh遠(yuǎn)程執(zhí)行命令給變量賦值的問(wèn)題解決

    shell腳本ssh遠(yuǎn)程執(zhí)行命令給變量賦值的問(wèn)題解決

    本文主要介紹了shell腳本ssh遠(yuǎn)程執(zhí)行命令給變量賦值的問(wèn)題解決,就是從A機(jī)器通過(guò)SSH方式到B機(jī)器,并執(zhí)行相關(guān)的命令,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-07-07
  • Linux shell 獲得字符串所在行數(shù)及位置的方法

    Linux shell 獲得字符串所在行數(shù)及位置的方法

    這篇文章主要介紹了Linux shell 獲得字符串所在行數(shù)及位置的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • shell腳本中if判斷‘-a‘ - ‘-z‘的具體使用

    shell腳本中if判斷‘-a‘ - ‘-z‘的具體使用

    本文主要介紹了shell腳本中if判斷‘-a‘ - ‘-z‘具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • 詳解adb shell 常用命令

    詳解adb shell 常用命令

    這篇文章主要介紹了詳解adb shell 常用命令,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Linux下Shell編程快捷鍵大全(日常整理)

    Linux下Shell編程快捷鍵大全(日常整理)

    有時(shí)候,我們需要在 Bash 中重復(fù)執(zhí)行先前的命令。所以學(xué)習(xí)shell編程快捷鍵對(duì)工作非常有幫助,下面由腳本之家小編給大家介紹Linux下Shell編程快捷鍵大全,需要的朋友參考下吧
    2016-03-03

最新評(píng)論