Linux
Linux常用系統調用列表作者:雷震 2002年3月
本文列出了大部分常見的Linux系統調用,并附有簡要中文說明。
以下是Linux系統調用的一個列表,包含了大部分常用系統調用和由系統調用派 生出的的函數。按照慣例,這個列表以man pages第2節,即系統調用節為藍本。
按照筆者的理解,對其作了大致的分類,同時也作了一些小小的修改,刪去了幾個 僅供內核使用,不允許用戶調用的系統調用,對個別本人稍覺不妥的地方作了一些 小的修改,并對所有列出的系統調用附上簡要注釋。
其中有一些函數的作用完全相同,只是參數不同。(可能很多熟悉C++朋友馬上
就能聯想起函數重載,但是別忘了Linux核心是用C語言寫的,所以只能取成不同
的函數名)。還有一些函數已經過時,被新的更好的函數所代替了(gcc在鏈接這些
函數時會發出警告),但因為兼容的原因還保留著,這些函數我會在前面標上“ *號
以示區別。
如想查找某系統調用的詳細用法,可用
man系統調用名命令,比如: man fork。
、進程控制:
setpriority
]設置調度優先級
modify_ldt
]讀寫進程的本地描述表
nano sleep
]使進程睡眠指定的時間
nice
]改變分時進程的優先級
pause
]掛起進程,等待信號
pers on ality
[設置進程運行域
prctl
]對進程進行特定操作
ptrace
]進程跟蹤
sched_get_priority_max
]取得靜態優先級的上限
sched_get_priority_ min
]取得靜態優先級的下限
sched_getparam
|取得進程的調度參數
sched_getscheduler
]取得指定進程的調度策略
sched_rr_get_i nterval
]取得按RR算法調度的實時進程的時間片長度
sched_setparam
]設置進程的調度參數
sched_setscheduler
|設置指定進程的調度策略和參數
sched_yield
—
進程主動讓出處理器,并將自己等候調度隊列隊尾
vfork
|創建一個子進程,以供執行新程序,常與execve等冋時使用
wait
等待子進程終止
wait3
]參見wait
waitpid
|等待指定子進程終止
wait4
| 參見 waitpid
capget
]獲取進程權限
capset
設置進程權限
getsid
獲取會晤標識號
setsid
設置會晤標識號
二、文件系統控制
1文件讀寫操作
fcntl
文件控制
ope n
打開文件
creat
創建新文件
close
關閉文件描述字
read
讀文件
write
寫文件
readv
從文件讀入數據到緩沖數組中
writev
將緩沖數組里的數據寫入文件
pread
對文件隨機讀
pwrite
對文件隨機寫
Iseek
移動文件指針
llseek
在64位地址空間里移動文件指針
dup
復制已打開的文件描述字
dup2
按指定條件復制文件描述字
flock
文件加/解鎖
poll
I/O多路轉換
trun cate
截斷文件
ftrun cate
參見 truncate
umask
設置文件權限掩碼
fsy nc
把文件在內存中的部分寫回磁盤
2、文件系統操作
access
確定文件的可存取性
chdir
改變當前工作目錄
fchdir
參見chdir
chmod
改變文件方式
fchmod
參見chmod
chow n
改變文件的屬主或用戶組
fchow n
參見chown
Ichow n
參見chown
chroot
改變根目錄
stat
取文件狀態信息
Istat
參見stat
fstat
參見stat
statfs
取文件系統信息
fstatfs
參見statfs
readdir
讀取目錄項
getde nts
讀取目錄項
mkdir
創建目錄
mknod
創建索引節點
rmdir
刪除目錄
ren ame
文件改名
link
創建鏈接
symli nk
創建符號鏈接
un li nk
刪除鏈接
readli nk
讀符號鏈接的值
mount
安裝文件系統
umount
卸下文件系統
ustat
取文件系統信息
utime
改變文件的訪問修改時間
utimes
參見utime
quotactl
控制磁盤配額
三、系統控制
ioctl
I/O總控制函數
_sysctl
讀/寫系統參數
acct
啟用或禁止進程記賬
getrlimit
獲取系統資源上限
setrlimit
設置系統資源上限
getrusage
獲取系統資源使用情況
uselib
選擇要使用的二進制函數庫
ioperm
設置端口 I/O權限
iopl
改變進程I/O權限級別
outb
低級端口操作