linux系統檔案描述符

2021-10-02 14:07:12 字數 1157 閱讀 3023

了解個東西叫fd 檔案描述符,也就是window系統下的hwnd控制代碼。

fd 是用乙個數字表示的。

系統中維護了每個使用者,程序,系統級別的使用者檔案描述符數量許可權限制,即乙個程序可以開啟多少個檔案描述符,乙個使用者可以可以開啟多少個檔案描述符,乙個程序可以開啟多少個檔案描述符。

以下命令可以檢視系統級別的檔案描述符上限(你甚至可以理解為系統可以開啟多少io裝置)

#命令1

sysctl -a |

grep file-max

#命令2

cat /proc/sys/fs/file-max

修改

vim /etc/sysctl.conf

#修改或新增

fs.file-max=value

#然後使用sysctl -p重新讀取引數

以下命令可以檢視使用者級別限制

cat /etc/security/limits.conf

ulimit -n

修改使用者級別限制

vim /etc/security/limits.conf
可以看到,*號代表使用者也可以填特定使用者,nofile表示使用者限制nproc表示程序限制

*               soft    nofile          65536

* hard nofile 65536

* soft nproc 4096

* hard nproc 4096

shell終端中描述符0-2是標準輸入輸出以及錯誤輸出

0 stdin 標準輸入

1 stdout標準輸出

2 stderr 錯誤輸出

我們可以經常看到2>&1這樣的shell表示什麼呢?

表示講錯誤重定向到標準輸出,那麼不加這個&有什麼差別呢?

差別就是不加& 會被寫入乙個檔案中1 中。

linux檔案描述符

本文介紹了檔案描述符,1 首先說什麼是檔案描述符,它有什麼作用?檔案描述符是乙個簡單的整數,用以標明每乙個被程序所開啟的檔案和socket。基於檔案描述符的輸入輸出函式 open 開啟乙個檔案,並指定訪問該檔案的方式,呼叫成功後返回乙個檔案描述符。creat 開啟乙個檔案,如果該檔案不存在,則建立它...

linux檔案描述符

當某個程式開啟檔案時,作業系統返回相應的檔案描述符,程式為了處理該檔案必須引用此描述符。所謂的檔案描述符是乙個低階的正整數。最前面的三個檔案描述符 0,1,2 分別與標準輸入 stdin 標準輸出 stdout 和標準錯誤 stderr 對應。因此,函式 scanf 使用 stdin,而函式 pri...

Linux 檔案描述符

我們之前就知道在linux作業系統下 一切皆檔案 所以在這個條件下,所有研究的物件都變相的相當於研究檔案,那麼對檔案系統的研究也應該是必須的。我們的核心利用檔案描述符來訪問檔案,每個檔案描述符都是非負整數,開啟現存的檔案或者是新建檔案時,核心會返回乙個檔案描述符,讀寫檔案也需要使用檔案描述符來指定待...