Linux系統(tǒng)調(diào)用列表

轉(zhuǎn)載:https://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.html
以下是Linux系統(tǒng)調(diào)用的一個列表,包含了大部分常用系統(tǒng)調(diào)用和由系統(tǒng)調(diào)用派生出的的函數(shù)没宾。這可能是你在互聯(lián)網(wǎng)上所能看到的唯一一篇中文注釋的Linux系統(tǒng)調(diào)用列表功戚,即使是簡單的字母序英文列表剧蚣,能做到這么完全也是很罕見的。

按照慣例膀斋,這個列表以man pages第2節(jié),即系統(tǒng)調(diào)用節(jié)為藍(lán)本。按照筆者的理解勃蜘,對其作了大致的分類,同時也作了一些小小的修改假残,刪去了幾個僅供內(nèi)核使用缭贡,不允許用戶調(diào)用的系統(tǒng)調(diào)用,對個別本人稍覺不妥的地方作了一些小的修改辉懒,并對所有列出的系統(tǒng)調(diào)用附上簡要注釋阳惹。

其中有一些函數(shù)的作用完全相同,只是參數(shù)不同眶俩。(可能很多熟悉C++朋友馬上就能聯(lián)想起函數(shù)重載莹汤,但是別忘了Linux核心是用C語言寫的,所以只能取成不同的函數(shù)名)颠印。還有一些函數(shù)已經(jīng)過時纲岭,被新的更好的函數(shù)所代替了(gcc在鏈接這些函數(shù)時會發(fā)出警告),但因為兼容的原因還保留著线罕,這些函數(shù)我會在前面標(biāo)上“*”號以示區(qū)別止潮。

一、進(jìn)程控制:

fork    創(chuàng)建一個新進(jìn)程
clone   按指定條件創(chuàng)建子進(jìn)程
execve  運行可執(zhí)行文件
exit    中止進(jìn)程
_exit   立即中止當(dāng)前進(jìn)程
getdtablesize   進(jìn)程所能打開的最大文件數(shù)
getpgid     獲取指定進(jìn)程組標(biāo)識號
setpgid     設(shè)置指定進(jìn)程組標(biāo)志號
getpgrp     獲取當(dāng)前進(jìn)程組標(biāo)識號
setpgrp     設(shè)置當(dāng)前進(jìn)程組標(biāo)志號
getpid  獲取進(jìn)程標(biāo)識號
getppid     獲取父進(jìn)程標(biāo)識號
getpriority     獲取調(diào)度優(yōu)先級
setpriority     設(shè)置調(diào)度優(yōu)先級
modify_ldt  讀寫進(jìn)程的本地描述表
nanosleep   使進(jìn)程睡眠指定的時間
nice    改變分時進(jìn)程的優(yōu)先級
pause   掛起進(jìn)程钞楼,等待信號
personality     設(shè)置進(jìn)程運行域
prctl   對進(jìn)程進(jìn)行特定操作
ptrace  進(jìn)程跟蹤
sched_get_priority_max  取得靜態(tài)優(yōu)先級的上限
sched_get_priority_min  取得靜態(tài)優(yōu)先級的下限
sched_getparam  取得進(jìn)程的調(diào)度參數(shù)
sched_getscheduler  取得指定進(jìn)程的調(diào)度策略
sched_rr_get_interval   取得按RR算法調(diào)度的實時進(jìn)程的時間片長度
sched_setparam  設(shè)置進(jìn)程的調(diào)度參數(shù)
sched_setscheduler  設(shè)置指定進(jìn)程的調(diào)度策略和參數(shù)
sched_yield     進(jìn)程主動讓出處理器,并將自己等候調(diào)度隊列隊尾
vfork   創(chuàng)建一個子進(jìn)程喇闸,以供執(zhí)行新程序,常與execve等同時使用
wait    等待子進(jìn)程終止
wait3   參見wait
waitpid     等待指定子進(jìn)程終止
wait4   參見waitpid
capget  獲取進(jìn)程權(quán)限
capset  設(shè)置進(jìn)程權(quán)限
getsid  獲取會晤標(biāo)識號
setsid  設(shè)置會晤標(biāo)識號

二、文件系統(tǒng)控制

1燃乍、文件讀寫操作
fcntl   文件控制
open    打開文件
creat   創(chuàng)建新文件
close   關(guān)閉文件描述字
read    讀文件
write   寫文件
readv   從文件讀入數(shù)據(jù)到緩沖數(shù)組中
writev  將緩沖數(shù)組里的數(shù)據(jù)寫入文件
pread   對文件隨機(jī)讀
pwrite  對文件隨機(jī)寫
lseek   移動文件指針
_llseek     在64位地址空間里移動文件指針
dup     復(fù)制已打開的文件描述字
dup2    按指定條件復(fù)制文件描述字
flock   文件加/解鎖
poll    I/O多路轉(zhuǎn)換
truncate    截斷文件
ftruncate   參見truncate
umask   設(shè)置文件權(quán)限掩碼
fsync   把文件在內(nèi)存中的部分寫回磁盤


2唆樊、文件系統(tǒng)操作
access  確定文件的可存取性
chdir   改變當(dāng)前工作目錄
fchdir  參見chdir
chmod   改變文件方式
fchmod  參見chmod
chown   改變文件的屬主或用戶組
fchown  參見chown
lchown  參見chown
chroot  改變根目錄
stat    取文件狀態(tài)信息
lstat   參見stat
fstat   參見stat
statfs  取文件系統(tǒng)信息
fstatfs     參見statfs
readdir     讀取目錄項
getdents    讀取目錄項
mkdir   創(chuàng)建目錄
mknod   創(chuàng)建索引節(jié)點
rmdir   刪除目錄
rename  文件改名
link    創(chuàng)建鏈接
symlink     創(chuàng)建符號鏈接
unlink  刪除鏈接
readlink    讀符號鏈接的值
mount   安裝文件系統(tǒng)
umount  卸下文件系統(tǒng)
ustat   取文件系統(tǒng)信息
utime   改變文件的訪問修改時間
utimes  參見utime
quotactl    控制磁盤配額

三、系統(tǒng)控制

ioctl   I/O總控制函數(shù)
_sysctl     讀/寫系統(tǒng)參數(shù)
acct    啟用或禁止進(jìn)程記賬
getrlimit   獲取系統(tǒng)資源上限
setrlimit   設(shè)置系統(tǒng)資源上限
getrusage   獲取系統(tǒng)資源使用情況
uselib  選擇要使用的二進(jìn)制函數(shù)庫
ioperm  設(shè)置端口I/O權(quán)限
iopl    改變進(jìn)程I/O權(quán)限級別
outb    低級端口操作
reboot  重新啟動
swapon  打開交換文件和設(shè)備
swapoff     關(guān)閉交換文件和設(shè)備
bdflush     控制bdflush守護(hù)進(jìn)程
sysfs   取核心支持的文件系統(tǒng)類型
sysinfo     取得系統(tǒng)信息
adjtimex    調(diào)整系統(tǒng)時鐘
alarm   設(shè)置進(jìn)程的鬧鐘
getitimer   獲取計時器值
setitimer   設(shè)置計時器值
gettimeofday    取時間和時區(qū)
settimeofday    設(shè)置時間和時區(qū)
stime   設(shè)置系統(tǒng)日期和時間
time    取得系統(tǒng)時間
times   取進(jìn)程運行時間
uname   獲取當(dāng)前UNIX系統(tǒng)的名稱橘沥、版本和主機(jī)等信息
vhangup     掛起當(dāng)前終端
nfsservctl  對NFS守護(hù)進(jìn)程進(jìn)行控制
vm86    進(jìn)入模擬8086模式
create_module   創(chuàng)建可裝載的模塊項
delete_module   刪除可裝載的模塊項
init_module     初始化模塊
query_module    查詢模塊信息
*get_kernel_syms    取得核心符號,已被query_module代替

四窗轩、內(nèi)存管理

brk     改變數(shù)據(jù)段空間的分配
sbrk    參見brk
mlock   內(nèi)存頁面加鎖
munlock     內(nèi)存頁面解鎖
mlockall    調(diào)用進(jìn)程所有內(nèi)存頁面加鎖
munlockall  調(diào)用進(jìn)程所有內(nèi)存頁面解鎖
mmap    映射虛擬內(nèi)存頁
munmap  去除內(nèi)存頁映射
mremap  重新映射虛擬內(nèi)存地址
msync   將映射內(nèi)存中的數(shù)據(jù)寫回磁盤
mprotect    設(shè)置內(nèi)存映像保護(hù)
getpagesize     獲取頁面大小
sync    將內(nèi)存緩沖區(qū)數(shù)據(jù)寫回硬盤
cacheflush  將指定緩沖區(qū)中的內(nèi)容寫回磁盤

五、網(wǎng)絡(luò)管理

getdomainname   取域名
setdomainname   設(shè)置域名
gethostid   獲取主機(jī)標(biāo)識號
sethostid   設(shè)置主機(jī)標(biāo)識號
gethostname     獲取本主機(jī)名稱
sethostname     設(shè)置主機(jī)名稱

六座咆、socket控制

socketcall  socket系統(tǒng)調(diào)用
socket  建立socket
bind    綁定socket到端口
connect     連接遠(yuǎn)程主機(jī)
accept  響應(yīng)socket連接請求
send    通過socket發(fā)送信息
sendto  發(fā)送UDP信息
sendmsg     參見send
recv    通過socket接收信息
recvfrom    接收UDP信息
recvmsg     參見recv
listen  監(jiān)聽socket端口
select  對多路同步I/O進(jìn)行輪詢
shutdown    關(guān)閉socket上的連接
getsockname     取得本地socket名字
getpeername     獲取通信對方的socket名字
getsockopt  取端口設(shè)置
setsockopt  設(shè)置端口參數(shù)
sendfile    在文件或端口間傳輸數(shù)據(jù)
socketpair  創(chuàng)建一對已聯(lián)接的無名socket

七痢艺、用戶管理

getuid  獲取用戶標(biāo)識號
setuid  設(shè)置用戶標(biāo)志號
getgid  獲取組標(biāo)識號
setgid  設(shè)置組標(biāo)志號
getegid     獲取有效組標(biāo)識號
setegid     設(shè)置有效組標(biāo)識號
geteuid     獲取有效用戶標(biāo)識號
seteuid     設(shè)置有效用戶標(biāo)識號
setregid    分別設(shè)置真實和有效的的組標(biāo)識號
setreuid    分別設(shè)置真實和有效的用戶標(biāo)識號
getresgid   分別獲取真實的,有效的和保存過的組標(biāo)識號
setresgid   分別設(shè)置真實的,有效的和保存過的組標(biāo)識號
getresuid   分別獲取真實的,有效的和保存過的用戶標(biāo)識號
setresuid   分別設(shè)置真實的,有效的和保存過的用戶標(biāo)識號
setfsgid    設(shè)置文件系統(tǒng)檢查時使用的組標(biāo)識號
setfsuid    設(shè)置文件系統(tǒng)檢查時使用的用戶標(biāo)識號
getgroups   獲取后補組標(biāo)志清單
setgroups   設(shè)置后補組標(biāo)志清單

八、進(jìn)程間通信

ipc     進(jìn)程間通信總控制調(diào)用
1介陶、信號
sigaction   設(shè)置對指定信號的處理方法
sigprocmask     根據(jù)參數(shù)對信號集中的信號執(zhí)行阻塞/解除阻塞等操作
sigpending  為指定的被阻塞信號設(shè)置隊列
sigsuspend  掛起進(jìn)程等待特定信號
signal  參見signal
kill    向進(jìn)程或進(jìn)程組發(fā)信號
*sigblock   向被阻塞信號掩碼中添加信號,已被sigprocmask代替
*siggetmask     取得現(xiàn)有阻塞信號掩碼,已被sigprocmask代替
*sigsetmask     用給定信號掩碼替換現(xiàn)有阻塞信號掩碼,已被sigprocmask代替
*sigmask    將給定的信號轉(zhuǎn)化為掩碼,已被sigprocmask代替
*sigpause   作用同sigsuspend,已被sigsuspend代替
sigvec  為兼容BSD而設(shè)的信號處理函數(shù),作用類似sigaction
ssetmask    ANSI C的信號處理函數(shù),作用類似sigaction


2堤舒、消息
msgctl  消息控制操作
msgget  獲取消息隊列
msgsnd  發(fā)消息
msgrcv  取消息


3、管道
pipe    創(chuàng)建管道


4哺呜、信號量
semctl  信號量控制
semget  獲取一組信號量
semop   信號量操作


5舌缤、共享內(nèi)存
shmctl  控制共享內(nèi)存
shmget  獲取共享內(nèi)存
shmat   連接共享內(nèi)存
shmdt   拆卸共享內(nèi)存
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市某残,隨后出現(xiàn)的幾起案子国撵,更是在濱河造成了極大的恐慌,老刑警劉巖玻墅,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件介牙,死亡現(xiàn)場離奇詭異,居然都是意外死亡澳厢,警方通過查閱死者的電腦和手機(jī)环础,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剩拢,“玉大人线得,你說我怎么就攤上這事⌒旆ィ” “怎么了贯钩?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長办素。 經(jīng)常有香客問我魏保,道長,這世上最難降的妖魔是什么摸屠? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮粱哼,結(jié)果婚禮上季二,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好胯舷,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布刻蚯。 她就那樣靜靜地躺著,像睡著了一般桑嘶。 火紅的嫁衣襯著肌膚如雪炊汹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天逃顶,我揣著相機(jī)與錄音讨便,去河邊找鬼。 笑死以政,一個胖子當(dāng)著我的面吹牛霸褒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播盈蛮,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼废菱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了抖誉?” 一聲冷哼從身側(cè)響起殊轴,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎袒炉,沒想到半個月后旁理,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡梳杏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年韧拒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片十性。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡叛溢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出劲适,到底是詐尸還是另有隱情楷掉,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布霞势,位于F島的核電站烹植,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏愕贡。R本人自食惡果不足惜草雕,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望固以。 院中可真熱鬧墩虹,春花似錦嘱巾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至菌湃,卻和暖如春问拘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背惧所。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工骤坐, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纯路。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓或油,卻偏偏與公主長得像,于是被迫代替她去往敵國和親驰唬。 傳聞我的和親對象是個殘疾皇子顶岸,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,185評論 25 707
  • 一、溫故而知新 1. 內(nèi)存不夠怎么辦 內(nèi)存簡單分配策略的問題地址空間不隔離內(nèi)存使用效率低程序運行的地址不確定 關(guān)于...
    SeanCST閱讀 7,815評論 0 27
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理叫编,服務(wù)發(fā)現(xiàn)辖佣,斷路器,智...
    卡卡羅2017閱讀 134,672評論 18 139
  • Linux 進(jìn)程管理與程序開發(fā) 進(jìn)程是Linux事務(wù)管理的基本單元搓逾,所有的進(jìn)程均擁有自己獨立的處理環(huán)境和系統(tǒng)資源卷谈,...
    JamesPeng閱讀 2,468評論 1 14
  • 說話,我們都會霞篡。 說話世蔗,就是表達(dá)自己心里的想法,只不過朗兵,因為各種人情世故污淋,我們不能無所畏懼的表達(dá)自己的想法。 但是...
    徐徐徐什么的閱讀 2,178評論 2 7