在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ 文件描述符
信號
創(chuàng)建目錄權(quán)限
示例程序
進程的定義
Hello World進程
創(chuàng)建進程
進程鎖
第四章 項目實例Run
Nohup命令
PID
前言
系統(tǒng)調(diào)用sendfile
進程參數(shù)
參考書籍
后記
進程狀態(tài)
本書概述
寫時復(fù)制(Copy On Write)
Docker簡介
第五章 注意事項
實現(xiàn)Run
孤兒進程概念
共享內(nèi)存
衍生(Spawn)新進程
PPID
第三章 進程進階
退出碼
簡介
進程文件
Thanks for reading!
項目學(xué)習(xí)
第一章 進程基礎(chǔ)
僵尸進程
系統(tǒng)調(diào)用
POSIX簡介
執(zhí)行(Exec)外部程序
文件描述符
進程名字
進程輸入與輸出
Cgroups
進程間通信
查看PID
死鎖概念
進程越多越好?
Run項目架構(gòu)
  • 1.
復(fù)制(Fork)進程
第二章 Go編程實例
活鎖概念
守護(Daemon)進程
并發(fā)與并行
捕獲SIGKILL
Namespaces簡介

文件描述符

文件描述符

Linux很重要的設(shè)計思想就是一切皆文件,網(wǎng)絡(luò)是文件,鍵盤等外設(shè)也是文件,很神奇吧?于是所有資源都有了統(tǒng)一的接口,開發(fā)者可以像寫文件那樣通過網(wǎng)絡(luò)傳輸數(shù)據(jù),我們也可以通過/proc/的文件看到進程的資源使用情況。

內(nèi)核給每個訪問的文件分配了文件描述符(File Descriptor),它本質(zhì)是一個非負整數(shù),在打開或新建文件時返回,以后讀寫文件都要通過這個文件描述符了。

應(yīng)用

我們想想操作系統(tǒng)打開的文件這么多,不可能他們共用一套文件描述符整數(shù)吧?這樣想就對了,Linux實現(xiàn)時這個fd其實是一個索引值,指向每個進程打開文件的記錄表。

POSIX已經(jīng)定義了STDIN_FILENO、STDOUT_FILENO和STDERR_FILENO三個常量,也就是0、1、2。這三個文件描述符是每個進程都有的,這也解釋了為什么每個進程都有編號為0、1、2的文件而不會與其他進程沖突。

文件描述符幫助應(yīng)用找到這個文件,而文件的打開模式等上下文信息存儲在文件對象中,這個對象直接與文件描述符關(guān)聯(lián)。

限制

注意了,每個系統(tǒng)對文件描述符個數(shù)都有限制。我們網(wǎng)上看到配置ulimit也是為了調(diào)整系統(tǒng)的打開文件個數(shù),因為一般服務(wù)器都要同時處理成千上萬個起請求,記住socket連接也是文件哦,使用系統(tǒng)默認值會出現(xiàn)莫名奇怪的問題。

講文件描述符其實是為高深莫測的epoll做鋪墊,掌握epoll對進程已經(jīng)有很深的理解了。

上一篇:退出碼下一篇:死鎖概念