Linux系統調用函數列表__Oracle

來源:互聯網
上載者:User

        以下是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

設定會晤標識號

二、檔案系統控制


1、檔案讀寫操作

fcntl

檔案控制

open

開啟檔案

creat

建立新檔案

close

關閉檔案描述字

read

讀檔案

write

寫檔案

readv

從檔案讀入資料到緩衝數組中

writev

將緩衝數組裡的資料寫入檔案

pread

對檔案隨機讀

pwrite

對檔案隨機寫

lseek

移動檔案指標

_llseek

在64位地址空間裡移動檔案指標

dup

複製已開啟的檔案描述字

dup2

按指定條件複製檔案描述字

flock

檔案加/解鎖

poll

I/O多路轉換

truncate

截斷檔案

ftruncate

參見truncate

umask

設定檔案許可權掩碼

fsync

把檔案在記憶體中的部分寫回磁碟




2、檔案系統操作

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

處理序間通訊總控制調用




1、訊號

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




2、訊息

msgctl

訊息控制操作

msgget

擷取訊息佇列

msgsnd

發訊息

msgrcv

取訊息




3、管道

pipe

建立管道




4、訊號量

semctl

訊號量控制

semget

擷取一組訊號量

semop

訊號量操作




5、共用記憶體

shmctl

控制共用記憶體

shmget

擷取共用記憶體

shmat

串連共用記憶體

shmdt

拆卸共用記憶體

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.