1. 程式人生 > >小何講Linux: Linux中檔案及檔案描述符概述

小何講Linux: Linux中檔案及檔案描述符概述

在Linux中,一切皆檔案!
  • 所有對裝置和檔案的操作都是使用檔案描述符來進行的。

  • 檔案描述符是一個非負的整數,它是一個索引值,並指向在核心中每個程序所開啟的檔案的記錄表;

  • 當開啟一個現存檔案或建立一個新檔案時,核心就向程序返回一個檔案描述符;

  • 當需要讀寫檔案時,需要把檔案描述符作為引數傳遞給相應的函式。

通常,一個程序啟動時,都會開啟3個檔案:

  • 標準輸入:對應檔案描述符為0(STDIN_FILENO)

  • 標準輸出:對應檔案描述符為1(STDOUT_FILENO)

  • 標準出錯處理:對應檔案描述符為2(STDERR_FILENO)
這三個常數定義在標頭檔案<unistd.h>中 
檔案描述符的範圍是0~OPEN_MAX 。
早期的UNIX版本採用的上限值是19 (允許每個程序開啟20個檔案),現在很多系統則將其增加至63或更多。
用Linux的命令ulimit -n可檢視系統開啟檔案的數量(linux:1024)。

我的電腦中的測試結果如下:

相關推薦

程序Linux的exec函式族講解

1.  exec函式族-exec()函式族說明使用exec函式族主要有兩種情況當程序認為自己不能再為系統和使用者做出任何貢獻時,就可以呼叫exec函式族中的任意一個函式讓自己重生;如果一個程序想執行另一個程式,那麼它就可以呼叫fork()/vfork()函式新建一個程序,然

程序 終止程序函式 exit()和_exit()

1.  exit()和_exit()函式說明 exit()和_exit()函式都是用來終止程序的。當程式執行到exit()或_exit()時,程序會無條件地停止剩下的所有操作,清除包括PCB在內的各種資料結構,並終止本程序的執行。exit()和_exit()函式的區別:這兩

Linux Linux檔案檔案描述概述

在Linux中,一切皆檔案!所有對裝置和檔案的操作都是使用檔案描述符來進行的。檔案描述符是一個非負的整數,它是一個索引值,並指向在核心中每個程序所開啟的檔案的記錄表;當開啟一個現存檔案或建立一個新檔案

Linux 檔案鎖及其例項

1.  檔案鎖基本概念 Linux中軟體、硬體資源都是檔案(一切皆檔案),檔案在多使用者環境中是可共享的。 檔案鎖是用於解決資源的共享使用的一種機制:當多個使用者需要共享一個檔案時,Linux通常採用

VM之LinuxLinux的Ubuntu,解決安裝後螢幕太的問題

1.操作環境 vmware14Pro ubuntu 16.04LTS 2.問題描述 在使用vmware14Pro安裝ubuntu 16.04LTS系統後,螢幕始終比較小,無法根據vmware的變化而變化。 3.問題原因 問題在於未設定vmware的選單選項或者未安裝vmwar

Linux主目錄的隱藏檔案是幹什麼用的?

Linux系統中,除了儲存了大量可見的檔案和資料夾,還附帶了很多隱藏的檔案和資料夾,那麼該如何進行檢視?這些隱藏檔案又有什麼用呢? 檢視Linux主目錄隱藏檔案可以通過執行ls –a來實現,對於隱藏檔案,不建議進行更改和刪除操作,原因是,主目錄中的隱藏檔案和目錄包括使用者程式訪問的設定和資料,其

我的 Linux 主目錄的隱藏檔案是幹什麼用的?

作者: Alexander Fox 譯者: LCTT MjSeven   在 Linux 系統中,你可能會在主目錄中儲存了大量檔案和資料夾。但在這些檔案之外,你知道你的主目錄還附帶了很多隱藏的檔案和資料夾嗎?如果你在主目錄中執行 ls -a,你會

Linux原始碼到可執行檔案(CRF++ python安裝)

這一過程又稱為編譯軟體原始碼。編譯是將原始碼(程式語言描述)翻譯成計算機處理器能識別的語言的過程。一 語言發展phase1:機器語言(數值程式碼,二進位制指令。)phase2:組合語言(有一些人理解的符號)phase3:高階程式語言(我們現在使用的語言)二 編譯程式語言(1)

Linux03---Terminal高階命令(檔案的壓縮與解壓)gzip、bzip2、tar

提示: gzip、bzip2:只能用於單個檔案的壓縮與解壓,不能壓縮或者解壓目錄 tar可用於多個檔案的壓縮與解壓 一般情況下:小檔案的壓縮用gzip,大檔案的壓縮用bzip2 一、gzip 1.概念:對字尾為.gz的檔案進行壓縮或者解壓  

linux 複製目錄含有隱藏檔案和連結如何處理

1. cp -Rp ——-不會複製隱藏檔案,符號連結的建立時間改變為複製時間了,硬連結被作為檔案複製了, 2 cp -a ————-可以作為比較小的複製,資料量大,可能因記憶體不足,導致失敗 3 tar cvf - * | (cd /dest/

Linux 服務器木馬木馬清除

一個 正常的 簡單的 ref chattr 分享圖片 日誌文件 動態 ont 1、查看流量圖發現問題 查看的時候網頁非常卡,有的時候甚至沒有響應 2、top動態查看進程 我馬上遠程登錄出問題的服務器,遠程操作很卡,網卡出去的流量非常大,通過top發現了一個異常的進程占用資

LinuxLinux 常用命令講解

安裝軟件 ima 本地 臨時 查看系統 解壓 arch 16px 表示 一、Linux 常用命令 所有的命令操作都是在服務器上進行的:  1)分類 軟件操作命令:軟件的安裝、卸載; 服務器硬件資源和磁盤操作:有幾個 CPU、內存有多大等; 文件和文件夾操作命令:新建、

Linux目錄結構,基本命令檔案操作命令

一.Linux系統中的目錄結構 1.根目錄 (/) 根目錄與開機/還原/系統修復等動作有關。目錄不要放在非常大的分割槽, 因為越大的分割槽內你會放入越多的資料,如此一來根目錄所在分割槽就可能會有較多發生錯誤的機會。 因此FHS標準建議:根目錄(/)所在分割槽應該越小越好

Qt心得之1 QWidget新增Q_OBJECT巨集, setStyleSheet設定了背景顏色不顯示

          QWidget在沒有新增Q_OBJECT巨集,在建構函式裡用setStyleSheet設定了背景顏色,是可以正常顯示,但添加了Q_OBJECT巨集後,QWidget就無法顯示背景色了, 百度了一下,發現了類似問題,說是QWidge

041模版載入靜態檔案詳解

載入靜態檔案: 在一個網頁中,不僅僅只有一個 html 骨架,還需要 css 樣式檔案, js 執行檔案以及一些圖片等。因此在 DTL 中載入靜態檔案是一個必須要解決的問題。在 DTL 中,使用 static 標籤來載入靜態檔案。要使用 static 標籤,首先需要 {% load static %} 。載

LinuxLinux 重要人物

1.Ken Thompson:C 語言之父和 UNIX 之父 2.Dennis Ritchie:C 語言之父和 UNIX 之父 3.Stallman:著名黑客,GNU 創始人,開發了 Emacs、gcc、bash shell 4.Bill Joy:BSD 開發者 5.Tanenbaum

linux du命令檢視檔案檔案大小資訊

du命令功能說明:統計目錄(或檔案)所佔磁碟空間的大小。 語  法:du [-abcDhHklmsSx] [-L <符號連線>][-X <檔案>][--block-size][--exclude=<目錄或檔案>] [--max-depth=<目錄層數>][--

胖說swift03--------swift開發的pch檔案

下面就是swift中代替OC的pch檔案的.一切的中心就是那個 Swift File 檔案,說白了,他就是swift環境下個pch檔案,按照步驟,點選Next完成建立! 如下,就是你所期待已久的s

Linux下的檔案檔案字尾名

1、Linux檔案的副檔名; 一談到檔案型別,大家就能想到Windows的檔案型別,比如file.txt、file.doc、file.sys、file.mp3、file.exe等,根據檔案的字尾就能判斷檔案的型別。但在Linux一個檔案是否能被執行,和字尾名沒有太大的關係,主要看檔案的屬性有關。但我們瞭解一

linux下使用find xargs grep查詢檔案檔案內容

1,在某個路徑下查檔案。 在/etc下查詢“*.log”的檔案 find /etc -name “*.log” 2,擴充套件,列出某個路徑下所有檔案,包括子目錄。 find /etc -name “*” 3,在某個路徑下查詢所有包含“hello abcserve