2024年3月31日发(作者:)

Linux常用系统调用

本文列出了大部分常见的Linux系统调用,并附有简要中文说明。

以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的

的函数。按照惯例,这个列表以man pages第2节,即系统调用节为蓝本。按照笔者的理解,

对其作了大致的分类,同时也作了一些小小的修改,删去了几个仅供内核使用,不允许用户

调用的系统调用,对个别本人稍觉不妥的地方作了一些小的修改,并对所有列出的系统调用

附上简要注释。

其中有一些函数的作用完全相同,只是参数不同。(可能很多熟悉C++朋友马上就能联

想起函数重载,但是别忘了Linux核心是用C语言写的,所以只能取成不同的函数名)。还

有一些函数已经过时,被新的更好的函数所代替了(gcc在链接这些函数时会发出警告),

但因为兼容的原因还保留着,这些函数我会在前面标上“*”号以示区别。

如想查找某系统调用的详细用法,可用man 系统调用名 命令,比如:man fork。

一、进程控制:

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

sched_setparam

sched_setscheduler

sched_yield

vfork

wait

wait3

waitpid

wait4

capget

capset

getsid

setsid

二、文件系统控制

1、文件读写操作

fcntl

open

creat

文件控制

打开文件

创建新文件

取得进程的调度参数

取得指定进程的调度策略

取得按RR算法调度的实时进程的时间片长度

设置进程的调度参数

设置指定进程的调度策略和参数

进程主动让出处理器,并将自己等候调度队列队尾

创建一个子进程,以供执行新程序,常与execve等同时使用

等待子进程终止

参见wait

等待指定子进程终止

参见waitpid

获取进程权限

设置进程权限

获取会晤标识号

设置会晤标识号