一、进程控制:
| 函数名 |
描述 |
文件 |
| 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 |
参见waitpid |
kernel/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 |
| poll |
I/O多路转换 |
fs/select.c |
| truncate |
截断文件 |
fs/open.c |
| ftruncate |
参见truncate |
fs/open.c |
| umask |
设置文件权限掩码 |
kernel/sys.c |
| fsync |
把文件在内存中的部分写回磁盘 |
fs/sync.c |
| access |
确定文件的可存取性 |
fs/open.c |
| chdir |
改变当前工作目录 |
fs/open.c |
| fchdir |
参见chdir |
fs/open.c |
| chmod |
改变文件方式 |
fs/open.c |
| fchmod |
参见chmod |
fs/open.c |
| chown |
改变文件的属主或用户组 |
fs/open.c |
| fchown |
参见chown |
fs/open.c |
| lchown |
参见chown |
fs/open.c |
| chroot |
改变根目录 |
fs/open.c |
| stat |
取文件状态信息 |
fs/stat.c |
| lstat |
参见stat |
fs/stat.c |
| fstat |
参见stat |
fs/stat.c |
| statfs |
取文件系统信息 |
fs/statfs.c |
| fstatfs |
参见statfs |
fs/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 |
参见utime |
fs/utimes.c |
| quotactl |
控制磁盘配额 |
fs/quota/quota.c |
三、系统控制
| 函数名 |
描述 |
文件 |
| ioctl |
I/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控制
| 函数名 |
描述 |
文件 |
| socketcall |
socket系统调用 |
|
| socket |
建立socket |
net/socket.c |
| bind |
绑定socket到端口 |
net/socket.c |
| connect |
连接远程主机 |
net/socket.c |
| accept |
响应socket连接请求 |
net/socket.c |
| send |
通过socket发送信息 |
|
| sendto |
发送UDP信息 |
net/socket.c |
| sendmsg |
参见send |
net/socket.c |
| recv |
通过socket接收信息 |
|
| recvfrom |
接收UDP信息 |
net/socket.c |
| recvmsg |
参见recv |
net/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 |
创建一对已联接的无名socket |
net/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 |
|
| ssetmask |
ANSI 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