以下的列表来源于64位的CentOS 7系统,详解链接后面会陆续补充。
系统中支持的系统调用列表及编号都定义在 /usr/include/asm/unistd.h文件下。
系统调用号 |
函数名 | 源代码 | 功能简介 | 起始内核版本 | 详解链接 |
0 | read | fs/read_write.c | 读文件内容 | ------ | Linux系统调用 - read |
1 | write | fs/read_write.c | 向文件中写入内容 | ------ | Linux系统调用 - write |
2 | open | fs/open.c | 打开指定的文件 | ------ | Linux系统调用 - open |
3 | close | fs/open.c | 关闭指定的文件 | ------ | Linux系统调用 - close |
4 | stat | fs/stat.c | 获取文件状态信息 | Linux系统调用 - 获取文件状态 | |
5 | fstat | fs/stat.c | 获取文件状态信息 | Linux系统调用 - 获取文件状态 | |
6 | lstat | fs/stat.c | 获取文件状态信息,对链接文件不解引用 | Linux系统调用 - 获取文件状态 | |
7 | poll | fs/select.c | 监听一组文件描述符上的发生的事件 | ||
8 | lseek | fs/read_write.c | 在文件中定位 | ||
9 | mmap | arch/x86/kernel/sys_x86_64.c | 映射虚拟内存页 | ||
10 | mprotect | mm/mprotect.c | 控制虚拟内存权限 | ||
11 | munmap | mm/mmap.c | 删除虚拟内存映射 | ||
12 | brk | mm/mmap.c | 调整堆空间范围 | ||
13 | rt_sigaction | kernel/signal.c | 设置信号的处理函数 | ||
14 | rt_sigprocmask | kernel/signal.c | 检查并修改阻塞的信号 | ||
15 | rt_sigreturn | arch/x86/kernel/signal.c | 从信号处理函数中返回并清空栈帧 | ||
16 | ioctl | fs/ioctl.c | 输入输出控制 | ||
17 | pread64 | fs/read_write.c | 对大文件随机读 | ||
18 | pwrite64 | fs/read_write.c | 对大文件随机写 | ||
19 | readv | fs/read_write.c | 从文件中读取内容并分散到指定的多个缓冲区 | ||
20 | writev | fs/read_write.c | 从指定的多个缓冲区中获取数据并集中写入到文件 | ||
21 | access | fs/open.c | 检查文件的访问权限 | ||
22 | pipe | fs/pipe.c | 创建管道 | ||
23 | select | fs/select.c | 多路同步IO轮询 | ||
24 | sched_yield | kernel/sched/core.c | 进程主动放弃处理器,并把自己放到调度队列的队尾 | ||
25 | mremap | mm/mmap.c | 重新映射虚拟内存页 | ||
26 | msync | mm/msync.c | 将映射内存中的内容刷新到磁盘 | ||
27 | mincore | mm/mincore.c | 测试指定的内存页是否在物理内存中 | ||
28 | madvise | mm/madvise.c | 为内存使用提供建议 | ||
29 | shmget | ipc/shm.c | 获取共享内存 | ||
30 | shmat | ipc/shm.c | 连接共享内存 | ||
31 | shmctl | ipc/shm.c | 共享内存属性控制 | ||
32 | dup | fs/file.c | 复制一个已经打开的文件描述符 | ||
33 | dup2 | fs/file.c | 复制一个已经打开的文件描述符 | ||
34 | pause | kernel/signal.c | 将当前进程挂起,等待信号唤醒 | ||
35 | nanosleep | kernel/hrtimer.c | 精确的进程睡眠控制 | ||
36 | getitimer | kernel/itimer.c | 获取定时器值 | ||
37 | alarm | kernel/timer.c | 设置进程的定时提醒 | ||
38 | setitimer | kernel/itimer.c | 设置定时器的值 | ||
39 | getpid | kernel/sys.c | 获取当前进程的进程ID | ||
40 | sendfile | fs/read_write.c | 在文件或端口建传输数据 | ||
41 | socket | net/socket.c | 创建一个套接字 | ||
42 | connect | net/socket.c | 连接远程主机 | ||
43 | accept | net/socket.c | 接受socket上的连接请求 | ||
44 | sendto | net/socket.c | 发送UDP消息 | ||
45 | recvfrom | net/socket.c | 接收UDP消息 | ||
46 | sendmsg | net/socket.c | 发送消息 | ||
47 | recvmsg | net/socket.c | 接收消息 | ||
48 | shutdown | net/socket.c | 关闭Socket上的连接 | Linux系统调用 - shutdown | |
49 | bind | net/socket.c | 绑定socket | ||
50 | listen | net/socket.c | 在指定套接字上监听网络事件 | ||
51 | getsockname | net/socket.c | 获取本地套接字的名字 | ||
52 | getpeername | net/socket.c | 获取通信的对端套接字的名字 | ||
53 | socketpair | net/socket.c | 创建一对已连接的无名socket | ||
54 | setsockopt | net/socket.c | 设置socket的各种属性 | ||
55 | getsockopt | net/socket.c | 读取socket的各种属性 | ||
56 | clone | kernel/fork.c | 创建线程或进程的底层支持接口 | ||
57 | fork | kernel/fork.c | 创建子进程 | ||
58 | vfork | kernel/fork.c | 创建子进程,比fork更加高效,但是有局限 | ||
59 | execve | fs/exec.c | 在当前进程中运行指定的程序 | ||
60 | exit | kernel/exit.c | 退出当前进程 | ||
61 | wait4 | kernel/exit.c | 等待子进程终止,并可获取子进程资源使用数据 | ||
62 | kill | kernel/signal.c | 给指定的进程发送信号 | ||
63 | uname |