Linux系統呼叫列表
以下是Linux系統呼叫的一個列表,包含了大部分常用系統呼叫和由系統呼叫派生出的的函式。這可能是你在網際網路上所能看到的唯一一篇中文註釋的Linux系統呼叫列表,即使是簡單的字母序英文列表,能做到這麼完全也是很罕見的。
按照慣例,這個列表以man pages第2節,即系統呼叫節為藍本。按照筆者的理解,對其作了大致的分類,同時也作了一些小小的修改,刪去了幾個僅供核心使用,不允許使用者呼叫的系統呼叫,對個別本人稍覺不妥的地方作了一些小的修改,並對所有列出的系統呼叫附上簡要註釋。
其中有一些函式的作用完全相同,只是引數不同。(可能很多熟悉C++朋友馬上就能聯想起函式過載,但是別忘了Linux核心是用C語言寫的,所以只能取成不同的函式名)。還有一些函式已經過時,被新的更好的函式所代替了(gcc在連結這些函式時會發出警告),但因為相容的原因還保留著,這些函式我會在前面標上“*”號以示區別。
一、程式控制:
fork | 建立一個新程式 |
clone | 按指定條件建立子程式 |
execve | 執行可執行檔案 |
exit | 中止程式 |
_exit | 立即中止當前程式 |
getdtablesize | 程式所能開啟的最大檔案數 |
getpgid | 獲取指定程式組標識號 |
setpgid | 設定指定程式組標誌號 |
getpgrp | 獲取當前程式組標識號 |
setpgrp | 設定當前程式組標誌號 |
getpid | 獲取程式標識號 |
getppid | 獲取父程式標識號 |
getpriority | 獲取排程優先順序 |
setpriority | 設定排程優先順序 |
modify_ldt | 讀寫程式的本地描述表 |
nanosleep | 使程式睡眠指定的時間 |
nice | 改變分時程式的優先順序 |
pause | 掛起程式,等待訊號 |
personality | 設定程式執行域 |
prctl | 對程式進行特定操作 |
ptrace | 程式跟蹤 |
sched_get_priority_max | 取得靜態優先順序的上限 |
sched_get_priority_min | 取得靜態優先順序的下限 |
sched_getparam | 取得程式的排程引數 |
sched_getscheduler | 取得指定程式的排程策略 |
sched_rr_get_interval | 取得按RR演算法排程的實時程式的時間片長度 |
sched_setparam | 設定程式的排程引數 |
sched_setscheduler | 設定指定程式的排程策略和引數 |
sched_yield | 程式主動讓出處理器,並將自己等候排程佇列隊尾 |
vfork | 建立一個子程式,以供執行新程式,常與execve等同時使用 |
wait | 等待子程式終止 |
wait3 | 參見wait |
waitpid | 等待指定子程式終止 |
wait4 | 參見waitpid |
capget | 獲取程式許可權 |
capset | 設定程式許可權 |
getsid | 獲取會晤標識號 |
setsid | 設定會晤標識號 |
二、檔案系統控制
fcntl | 檔案控制 |
open | 開啟檔案 |
creat | 建立新檔案 |
close | 關閉檔案描述字 |
read | 讀檔案 |
write | 寫檔案 |
readv | 從檔案讀入資料到緩衝陣列中 |
writev | 將緩衝陣列裡的資料寫入檔案 |
pread | 對檔案隨機讀 |
pwrite | 對檔案隨機寫 |
lseek | 移動檔案指標 |
_llseek | 在64位地址空間裡移動檔案指標 |
dup | 複製已開啟的檔案描述字 |
dup2 | 按指定條件複製檔案描述字 |
flock | 檔案加/解鎖 |
poll | I/O多路轉換 |
truncate | 截斷檔案 |
ftruncate | 參見truncate |
umask | 設定檔案許可權掩碼 |
fsync | 把檔案在記憶體中的部分寫回磁碟 |
access | 確定檔案的可存取性 |
chdir | 改變當前工作目錄 |
fchdir | 參見chdir |
chmod | 改變檔案方式 |
fchmod | 參見chmod |
chown | 改變檔案的屬主或使用者組 |
fchown | 參見chown |
lchown | 參見chown |
chroot | 改變根目錄 |
stat | 取檔案狀態資訊 |
lstat | 參見stat |
fstat | 參見stat |
statfs | 取檔案系統資訊 |
fstatfs | 參見statfs |
readdir | 讀取目錄項 |
getdents | 讀取目錄項 |
mkdir | 建立目錄 |
mknod | 建立索引節點 |
rmdir | 刪除目錄 |
rename | 檔案改名 |
link | 建立連結 |
symlink | 建立符號連結 |
unlink | 刪除連結 |
readlink | 讀符號連結的值 |
mount | 安裝檔案系統 |
umount | 卸下檔案系統 |
ustat | 取檔案系統資訊 |
utime | 改變檔案的訪問修改時間 |
utimes | 參見utime |
quotactl | 控制磁碟配額 |
三、系統控制
ioctl | I/O總控制函式 |
_sysctl | 讀/寫系統引數 |
acct | 啟用或禁止程式記賬 |
getrlimit | 獲取系統資源上限 |
setrlimit | 設定系統資源上限 |
getrusage | 獲取系統資源使用情況 |
uselib | 選擇要使用的二進位制函式庫 |
ioperm | 設定埠I/O許可權 |
iopl | 改變程式I/O許可權級別 |
outb | 低階埠操作 |
reboot | 重新啟動 |
swapon | 開啟交換檔案和裝置 |
swapoff | 關閉交換檔案和裝置 |
bdflush | 控制bdflush守護程式 |
sysfs | 取核心支援的檔案系統型別 |
sysinfo | 取得系統資訊 |
adjtimex | 調整系統時鐘 |
alarm | 設定程式的鬧鐘 |
getitimer | 獲取計時器值 |
setitimer | 設定計時器值 |
gettimeofday | 取時間和時區 |
settimeofday | 設定時間和時區 |
stime | 設定系統日期和時間 |
time | 取得系統時間 |
times | 取程式執行時間 |
uname | 獲取當前UNIX系統的名稱、版本和主機等資訊 |
vhangup | 掛起當前終端 |
nfsservctl | 對NFS守護程式進行控制 |
vm86 | 進入模擬8086模式 |
create_module | 建立可裝載的模組項 |
delete_module | 刪除可裝載的模組項 |
init_module | 初始化模組 |
query_module | 查詢模組資訊 |
*get_kernel_syms | 取得核心符號,已被query_module代替 |
四、記憶體管理
brk | 改變資料段空間的分配 |
sbrk | 參見brk |
mlock | 記憶體頁面加鎖 |
munlock | 記憶體頁面解鎖 |
mlockall | 呼叫程式所有記憶體頁面加鎖 |
munlockall | 呼叫程式所有記憶體頁面解鎖 |
mmap | 對映虛擬記憶體頁 |
munmap | 去除記憶體頁對映 |
mremap | 重新對映虛擬記憶體地址 |
msync | 將對映記憶體中的資料寫回磁碟 |
mprotect | 設定記憶體映像保護 |
getpagesize | 獲取頁面大小 |
sync | 將記憶體緩衝區資料寫回硬碟 |
cacheflush | 將指定緩衝區中的內容寫回磁碟 |
五、網路管理
getdomainname | 取域名 |
setdomainname | 設定域名 |
gethostid | 獲取主機標識號 |
sethostid | 設定主機標識號 |
gethostname | 獲取本主機名稱 |
sethostname | 設定主機名稱 |
六、socket控制
socketcall | socket系統呼叫 |
socket | 建立socket |
bind | 繫結socket到埠 |
connect | 連線遠端主機 |
accept | 響應socket連線請求 |
send | 通過socket傳送資訊 |
sendto | 傳送UDP資訊 |
sendmsg | 參見send |
recv | 通過socket接收資訊 |
recvfrom | 接收UDP資訊 |
recvmsg | 參見recv |
listen | 監聽socket埠 |
select | 對多路同步I/O進行輪詢 |
shutdown | 關閉socket上的連線 |
getsockname | 取得本地socket名字 |
getpeername | 獲取通訊對方的socket名字 |
getsockopt | 取埠設定 |
setsockopt | 設定埠引數 |
sendfile | 在檔案或埠間傳輸資料 |
socketpair | 建立一對已聯接的無名socket |
七、使用者管理
getuid | 獲取使用者標識號 |
setuid | 設定使用者標誌號 |
getgid | 獲取組標識號 |
setgid | 設定組標誌號 |
getegid | 獲取有效組標識號 |
setegid | 設定有效組標識號 |
geteuid | 獲取有效使用者標識號 |
seteuid | 設定有效使用者標識號 |
setregid | 分別設定真實和有效的的組標識號 |
setreuid | 分別設定真實和有效的使用者標識號 |
getresgid | 分別獲取真實的,有效的和儲存過的組標識號 |
setresgid | 分別設定真實的,有效的和儲存過的組標識號 |
getresuid | 分別獲取真實的,有效的和儲存過的使用者標識號 |
setresuid | 分別設定真實的,有效的和儲存過的使用者標識號 |
setfsgid | 設定檔案系統檢查時使用的組標識號 |
setfsuid | 設定檔案系統檢查時使用的使用者標識號 |
getgroups | 獲取後補組標誌清單 |
setgroups | 設定後補組標誌清單 |
八、程式間通訊
ipc | 程式間通訊總控制呼叫 |
sigaction | 設定對指定訊號的處理方法 |
sigprocmask | 根據引數對訊號集中的訊號執行阻塞/解除阻塞等操作 |
sigpending | 為指定的被阻塞訊號設定佇列 |
sigsuspend | 掛起程式等待特定訊號 |
signal | 參見signal |
kill | 向程式或程式組發訊號 |
*sigblock | 向被阻塞訊號掩碼中新增訊號,已被sigprocmask代替 |
*siggetmask | 取得現有阻塞訊號掩碼,已被sigprocmask代替 |
*sigsetmask | 用給定訊號掩碼替換現有阻塞訊號掩碼,已被sigprocmask代替 |
*sigmask | 將給定的訊號轉化為掩碼,已被sigprocmask代替 |
*sigpause | 作用同sigsuspend,已被sigsuspend代替 |
sigvec | 為相容BSD而設的訊號處理函式,作用類似sigaction |
ssetmask | ANSI C的訊號處理函式,作用類似sigaction |
msgctl | 訊息控制操作 |
msgget | 獲取訊息佇列 |
msgsnd | 發訊息 |
msgrcv | 取訊息 |
pipe | 建立管道 |
semctl | 訊號量控制 |
semget | 獲取一組訊號量 |
semop | 訊號量操作 |
shmctl | 控制共享記憶體 |
shmget | 獲取共享記憶體 |
shmat | 連線共享記憶體 |
shmdt | 拆卸共享記憶體 |
- Linux man pages
- Advanced Programming in the UNIX Environment, W. Richard Stevens, 1993
轉自:http://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.html
http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316695.html
相關文章
- Linux系統呼叫原理Linux
- 【Linux系統程式設計】Linux訊號列表Linux程式設計
- Linux系統呼叫機制淺析Linux
- Linux作業系統分析 | 深入理解系統呼叫Linux作業系統
- linux系統呼叫第一篇Linux
- 在 Linux 上用 strace 來理解系統呼叫Linux
- 線上環境 Linux 系統呼叫追蹤Linux
- linux軟中段和系統呼叫深入研究Linux
- Linux系統程式設計(七)檔案許可權系統呼叫Linux程式設計
- Linux系統呼叫詳解(實現機制分析)Linux
- 學習筆記 作業系統Linux-Ubuntu 之初次新增系統呼叫筆記作業系統LinuxUbuntu
- 如何利用Ptrace攔截和模擬Linux系統呼叫Linux
- 使用 Ptrace 去攔截和模擬 Linux 系統呼叫Linux
- x64架構下Linux系統函式呼叫架構Linux函式
- 【linux】系統呼叫版串列埠分析&原始碼實戰Linux串列埠原始碼
- Windows 系統呼叫Windows
- C程式函式呼叫&系統呼叫C程式函式
- PbootCMS內容和列表頁呼叫tags列表boot
- Lec 04 系統呼叫
- 系統呼叫篇——SSDT
- Linux命令strace跟蹤程式的系統呼叫-linux學習用什麼書Linux
- 織夢繫統列表頁的一些呼叫方法
- Linux中檢查本地系統上的開放埠列表的方法Linux
- Linux漏洞挖掘:08---系統呼叫劫持之(通過IDT中斷向量表獲取sys_call_table系統呼叫表)Linux
- linux之系統命令command和系統呼叫system calls及函式function之間的關係Linux函式Function
- Linux errno 列表Linux
- dedeCMS中頻道下列表呼叫
- 系統呼叫篇——3環層面呼叫過程
- xenomai核心解析--雙核系統呼叫(三)--如何為xenomai新增一個系統呼叫AI
- 物聯網作業系統列表作業系統
- 分散式系統:遠端呼叫分散式
- FlutterUI 呼叫系統渲染引擎-13FlutterUI
- 系統呼叫三層機制
- Linux系統管理-系統概述Linux
- 核心函式 系統呼叫 系統命令 庫函式函式
- 系統呼叫篇——0環層面呼叫過程(上)
- 系統呼叫篇——0環層面呼叫過程(下)
- 【linux】Linux作業系統Linux作業系統
- Linux系統哪個更好用?Linux系統盤點!Linux