新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 常見的Linux系統(tǒng)調用

常見的Linux系統(tǒng)調用

作者: 時間:2011-02-25 來源:網絡 收藏
本文列出了大部分常見的Linux系統(tǒng)調用,并附有簡要中文說明。

以下是Linux系統(tǒng)調用的一個列表,包含了大部分常用系統(tǒng)調用和由系統(tǒng)調用派生出的的函數。這可能是你在互聯(lián)網上所能看到的唯一一篇中文注釋的Linux系統(tǒng)調用列表,即使是簡單的字母序英文列表,能做到這么完全也是很罕見的。

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

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

一、進程控制:

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






回頁首


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

1、文件讀寫操作

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


2、文件系統(tǒng)操作

access確定文件的可存取性
chdir改變當前工作目錄
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)控制

ioctlI/O總控制函數
_sysctl讀/寫系統(tǒng)參數
acct啟用或禁止進程記賬
getrlimit獲取系統(tǒng)資源上限
setrlimit設置系統(tǒng)資源上限
getrusage獲取系統(tǒng)資源使用情況
uselib選擇要使用的二進制函數庫
ioperm設置端口I/O權限
iopl改變進程I/O權限級別
outb低級端口操作
reboot重新啟動
swapon打開交換文件和設備
swapoff關閉交換文件和設備
bdflush控制bdflush守護進程
sysfs取核心支持的文件系統(tǒng)類型
sysinfo取得系統(tǒng)信息
adjtimex調整系統(tǒng)時鐘
alarm設置進程的鬧鐘
getitimer獲取計時器值
setitimer設置計時器值
gettimeofday取時間和時區(qū)
settimeofday設置時間和時區(qū)
stime設置系統(tǒng)日期和時間
time取得系統(tǒng)時間
times取進程運行時間
uname獲取當前UNIX系統(tǒng)的名稱、版本和主機等信息
vhangup掛起當前終端
nfsservctl對NFS守護進程進行控制
vm86進入模擬8086模式
create_module創(chuàng)建可裝載的模塊項
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將內存緩沖區(qū)數據寫回硬盤
cacheflush將指定緩沖區(qū)中的內容寫回磁盤






回頁首


五、網絡管理

getdomainname取域名
setdomainname設置域名
gethostid獲取主機標識號
sethostid設置主機標識號
gethostname獲取本主機名稱
sethostname設置主機名稱






回頁首


六、socket控制

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






回頁首


七、用戶管理

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






回頁首


八、進程間通信

ipc進程間通信總控制調用


1、信號

sigaction設置對指定信號的處理方法
sigprocmask根據參數對信號集中的信號執(zhí)行阻塞/解除阻塞等操作
sigpending為指定的被阻塞信號設置隊列
sigsuspend掛起進程等待特定信號
signal參見signal
kill向進程或進程組發(fā)信號
*sigblock向被阻塞信號掩碼中添加信號,已被sigprocmask代替
*siggetmask取得現有阻塞信號掩碼,已被sigprocmask代替
*sigsetmask用給定信號掩碼替換現有阻塞信號掩碼,已被sigprocmask代替
*sigmask將給定的信號轉化為掩碼,已被sigprocmask代替
*sigpause作用同sigsuspend,已被sigsuspend代替
sigvec為兼容BSD而設的信號處理函數,作用類似sigaction
ssetmaskANSI C的信號處理函數,作用類似sigaction


2、消息

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


3、管道

pipe創(chuàng)建管道


4、信號量

semctl信號量控制
semget獲取一組信號量
semop信號量操作


5、共享內存

shmctl控制共享內存
shmget獲取共享內存
shmat連接共享內存
shmdt拆卸共享內存
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關推薦

技術專區(qū)

關閉