Linux系统调用列表

一、进程控制:

函数名描述文件
fork创建一个新进程kernel/fork.c
clone按指定条件创建子进程kernel/fork.c
execve运行可执行文件fs/exec.c
exit中止进程kernel/exit.c
_exit立即中止当前进程
getdtablesize进程所能打开的最大文件数kernel/sys.c
getpgid获取指定进程组标识号kernel/sys.c
setpgid设置指定进程组标志号kernel/sys.c
getpgrp获取当前进程组标识号kernel/sys.c
setpgrp设置当前进程组标志号kernel/sys.c
getpid获取进程标识号kernel/sys.c
getppid获取父进程标识号kernel/sys.c
getpriority获取调度优先级kernel/sys.c
setpriority设置调度优先级kernel/sys.c
modify_ldt读写进程的本地描述表arch/x86/um/ldt.c
nanosleep使进程睡眠指定的时间kernel/hrtimer.c
nice改变分时进程的优先级
pause挂起进程,等待信号kernel/signal.c
personality设置进程运行域kernel/exec_domain.c
prctl对进程进行特定操作kernel/sys.c
ptrace进程跟踪kernel/ptrace.c
sched_get_priority_max取得静态优先级的上限kernel/sched/core.c
sched_get_priority_min取得静态优先级的下限kernel/sched/core.c
sched_getparam取得进程的调度参数kernel/sched/core.c
sched_getscheduler取得指定进程的调度策略kernel/sched/core.c
sched_rr_get_interval取得按RR算法调度的实时进程的时间片长度kernel/sched/core.c
sched_setparam设置进程的调度参数kernel/sched/core.c
sched_setscheduler设置指定进程的调度策略和参数kernel/sched/core.c
sched_yield进程主动让出处理器,并将自己等候调度队列队尾kernel/sched/core.c
vfork创建一个子进程,以供执行新程序,常与execve等同时使用kernel/fork.c
wait等待子进程终止
wait3参见wait
waitpid等待指定子进程终止
wait4参见waitpidkernel/exit.c
capget获取进程权限kernel/capability.c
capset设置进程权限kernel/capability.c
getsid获取会晤标识号kernel/sys.c
setsid设置会晤标识号kernel/sys.c

二、文件系统控制

函数名描述文件
fcntl文件控制fs/fcntl.c
open打开文件fs/open.c
creat创建新文件fs/open.c
close关闭文件描述字fs/open.c
read读文件fs/read_write.c
write写文件fs/read_write.c
readv从文件读入数据到缓冲数组中fs/read_write.c
writev将缓冲数组里的数据写入文件fs/read_write.c
pread对文件随机读fs/read_write.c
pwrite对文件随机写fs/read_write.c
lseek移动文件指针fs/read_write.c
_llseek在64位地址空间里移动文件指针
dup复制已打开的文件描述字fs/file.c
dup2按指定条件复制文件描述字fs/file.c
flock文件加/解锁fs/locks.c
pollI/O多路转换fs/select.c
truncate截断文件fs/open.c
ftruncate参见truncatefs/open.c
umask设置文件权限掩码kernel/sys.c
fsync把文件在内存中的部分写回磁盘fs/sync.c
access确定文件的可存取性fs/open.c
chdir改变当前工作目录fs/open.c
fchdir参见chdirfs/open.c
chmod改变文件方式fs/open.c
fchmod参见chmodfs/open.c
chown改变文件的属主或用户组fs/open.c
fchown参见chownfs/open.c
lchown参见chownfs/open.c
chroot改变根目录fs/open.c
stat取文件状态信息fs/stat.c
lstat参见statfs/stat.c
fstat参见statfs/stat.c
statfs取文件系统信息fs/statfs.c
fstatfs参见statfsfs/statfs.c
readdir读取目录项
getdents读取目录项fs/readdir.c
mkdir创建目录fs/namei.c
mknod创建索引节点fs/namei.c
rmdir删除目录fs/namei.c
rename文件改名fs/namei.c
link创建链接fs/namei.c
symlink创建符号链接fs/namei.c
unlink删除链接fs/namei.c
readlink读符号链接的值fs/stat.c
mount安装文件系统fs/namespace.c
umount卸下文件系统
ustat取文件系统信息fs/statfs.c
utime改变文件的访问修改时间fs/utimes.c
utimes参见utimefs/utimes.c
quotactl控制磁盘配额fs/quota/quota.c

三、系统控制

函数名描述文件
ioctlI/O总控制函数fs/ioctl.c
_sysctl读/写系统参数kernel/sysctl_binary.c
acct启用或禁止进程记账kernel/acct.c
getrlimit获取系统资源上限kernel/sys.c
setrlimit设置系统资源上限kernel/sys.c
getrusage获取系统资源使用情况kernel/sys.c
uselib选择要使用的二进制函数库fs/exec.c
ioperm设置端口I/O权限arch/x86/kernel/ioport.c
iopl改变进程I/O权限级别arch/x86/kernel/ioport.c
outb低级端口操作
reboot重新启动kernel/reboot.c
swapon打开交换文件和设备mm/swapfile.c
swapoff关闭交换文件和设备mm/swapfile.c
bdflush控制bdflush守护进程
sysfs取核心支持的文件系统类型fs/filesystems.c
sysinfo取得系统信息kernel/sys.c
adjtimex调整系统时钟kernel/time.c
alarm设置进程的闹钟kernel/timer.c
getitimer获取计时器值kernel/itimer.c
setitimer设置计时器值kernel/itimer.c
gettimeofday取时间和时区kernel/time.c
settimeofday设置时间和时区kernel/time.c
stime设置系统日期和时间
time取得系统时间
times取进程运行时间kernel/sys.c
uname获取当前UNIX系统的名称、版本和主机等信息kernel/sys.c
vhangup挂起当前终端fs/open.c
nfsservctl对NFS守护进程进行控制
vm86进入模拟8086模式
create_module创建可装载的模块项
delete_module删除可装载的模块项kernel/module.c
init_module初始化模块kernel/module.c
query_module查询模块信息
*get_kernel_syms取得核心符号,已被query_module代替

四、内存管理

函数名描述文件
brk改变数据段空间的分配mm/mmap.c
sbrk参见brk
mlock内存页面加锁mm/mlock.c
munlock内存页面解锁mm/mlock.c
mlockall调用进程所有内存页面加锁mm/mlock.c
munlockall调用进程所有内存页面解锁mm/mlock.c
mmap映射虚拟内存页arch/x86/kernel/sys_x86_64.c
munmap去除内存页映射mm/mmap.c
mremap重新映射虚拟内存地址mm/mmap.c
msync将映射内存中的数据写回磁盘mm/msync.c
mprotect设置内存映像保护mm/mprotect.c
getpagesize获取页面大小
sync将内存缓冲区数据写回硬盘fs/sync.c
cacheflush将指定缓冲区中的内容写回磁盘

五、网络管理

函数名描述文件
getdomainname取域名
setdomainname设置域名kernel/sys.c
gethostid获取主机标识号
sethostid设置主机标识号
gethostname获取本主机名称
sethostname设置主机名称kernel/sys.c

六、socket控制

函数名描述文件
socketcallsocket系统调用
socket建立socketnet/socket.c
bind绑定socket到端口net/socket.c
connect连接远程主机net/socket.c
accept响应socket连接请求net/socket.c
send通过socket发送信息
sendto发送UDP信息net/socket.c
sendmsg参见sendnet/socket.c
recv通过socket接收信息
recvfrom接收UDP信息net/socket.c
recvmsg参见recvnet/socket.c
listen监听socket端口net/socket.c
select对多路同步I/O进行轮询fs/select.c
shutdown关闭socket上的连接net/socket.c
getsockname取得本地socket名字net/socket.c
getpeername获取通信对方的socket名字net/socket.c
getsockopt取端口设置net/socket.c
setsockopt设置端口参数net/socket.c
sendfile在文件或端口间传输数据fs/read_write.c
socketpair创建一对已联接的无名socketnet/socket.c

七、用户管理

函数名描述文件
getuid获取用户标识号kernel/sys.c
setuid设置用户标志号kernel/sys.c
getgid获取组标识号kernel/sys.c
setgid设置组标志号kernel/sys.c
getegid获取有效组标识号kernel/sys.c
setegid设置有效组标识号kernel/sys.c
geteuid获取有效用户标识号kernel/sys.c
seteuid设置有效用户标识号kernel/sys.c
setregid分别设置真实和有效的的组标识号kernel/sys.c
setreuid分别设置真实和有效的用户标识号kernel/sys.c
getresgid分别获取真实的,有效的和保存过的组标识号kernel/sys.c
setresgid分别设置真实的,有效的和保存过的组标识号kernel/sys.c
getresuid分别获取真实的,有效的和保存过的用户标识号kernel/sys.c
setresuid分别设置真实的,有效的和保存过的用户标识号kernel/sys.c
setfsgid设置文件系统检查时使用的组标识号kernel/sys.c
setfsuid设置文件系统检查时使用的用户标识号kernel/sys.c
getgroups获取后补组标志清单kernel/groups.c
setgroups设置后补组标志清单kernel/groups.c

八、进程间通信

函数名描述文件
ipc进程间通信总控制调用
信号
sigaction设置对指定信号的处理方法
sigprocmask根据参数对信号集中的信号执行阻塞/解除阻塞等操作
sigpending为指定的被阻塞信号设置队列
sigsuspend挂起进程等待特定信号
signal参见signal
kill向进程或进程组发信号kernel/signal.c
*sigblock向被阻塞信号掩码中添加信号,已被sigprocmask代替
*siggetmask取得现有阻塞信号掩码,已被sigprocmask代替
*sigsetmask
*sigmask将给定的信号转化为掩码,已被sigprocmask代替
*sigpause作用同sigsuspend,已被sigsuspend代替
sigvec为兼容BSD而设的信号处理函数,作用类似sigaction
ssetmaskANSI C的信号处理函数,作用类似sigaction
2、消息
msgctl消息控制操作ipc/msg.c
msgget获取消息队列ipc/msg.c
msgsnd发消息ipc/msg.c
msgrcv取消息ipc/msg.c
3、管道
pipe创建管道fs/pipe.c
4、信号量
semctl信号量控制ipc/sem.c
semget获取一组信号量ipc/sem.c
semop信号量操作ipc/sem.c
5、共享内存
shmctl控制共享内存ipc/shm.c
shmget获取共享内存ipc/shm.c
shmat连接共享内存ipc/shm.c
shmdt拆卸共享内存ipc/shm.c

转自
https://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.html
http://blog.csdn.net/sinat_26227857/article/details/44244433

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值