linux下檔案描述符限制問題

2022-09-26 14:12:15 字數 587 閱讀 4095

一.問題描述

在除錯乙個問題的時候,socket始終連線不上,返回的控制代碼大約是1030左右。開始的時候是好的,執行一段時間後出現的問題。

二.問題分析

問題過去有段時間了,忘記當時怎麼想程式設計客棧到是超過檔案描述符限制了。大概是根據控制代碼的值或者返回的錯誤碼了。

嗯。linux下檔案描述符最大限制預設最大為1024,通過

[root@localhost ~]# ulimit -n

1024

這個命令可以檢視。此值可以修改。

程序的檔案描述符,可以通過

[root@localhost ~]# ls -a程式設計客棧l /proc/13623/fd |wc -l

59輸出的數字即為該程序檔案描述符的個數。

修改linux下檔案描述符限制的方法:

臨時修改使用:ulimit -hsn 655程式設計客棧36

其實1024這個限制一般足夠了,至於超過此數值一般也是程式中的bug。在除錯的程式中沒new乙個socket的程式設計客棧時候bjrbouv,都新開啟了乙個檔案,而忘記關閉,從而導致越來越多。

總結本文標題: linux下檔案描述符限制問題

本文位址:

Linux 下檔案描述符(二)

程式設計中應該使用中定義的stdin fileno stdout fineno stderr fileno 三個巨集來表示0,1,2.在程式中可以使用close來關閉stdout fineno 標準輸出 然後再使用open系統呼叫開啟裝置或者檔案,則其對應的檔案描述符則為1,此時系統就會將其作為標準...

linux下檔案描述符的介紹

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

linux下檔案描述符的介紹

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