跳转至

Syscall 速查表

进程管理

Syscall 签名 说明
fork pid_t fork(void) 创建子进程(COW)
clone long clone(flags, stack, ...) 创建进程/线程(精细控制共享资源)
execve int execve(path, argv, envp) 执行新程序
exit void exit(int status) 终止进程
wait4 pid_t wait4(pid, status, options, rusage) 等待子进程
getpid pid_t getpid(void) 获取 PID
gettid pid_t gettid(void) 获取线程 ID
kill int kill(pid_t pid, int sig) 发送信号

文件 I/O

Syscall 签名 说明
openat int openat(dirfd, path, flags, mode) 打开文件
close int close(int fd) 关闭 fd
read ssize_t read(fd, buf, count) 读数据
write ssize_t write(fd, buf, count) 写数据
pread64 ssize_t pread64(fd, buf, count, offset) 定位读
pwrite64 ssize_t pwrite64(fd, buf, count, offset) 定位写
readv ssize_t readv(fd, iov, iovcnt) 散布读
writev ssize_t writev(fd, iov, iovcnt) 聚集写
lseek off_t lseek(fd, offset, whence) 移动偏移量
fsync int fsync(int fd) 数据+元数据落盘
fdatasync int fdatasync(int fd) 数据落盘
fallocate int fallocate(fd, mode, offset, len) 预分配空间
ioctl int ioctl(fd, request, ...) 设备控制
fcntl int fcntl(fd, cmd, ...) fd 控制

文件系统

Syscall 签名 说明
stat / fstat int stat(path, statbuf) 获取文件信息
mkdir int mkdir(path, mode) 创建目录
unlink int unlink(path) 删除文件
rename int rename(oldpath, newpath) 重命名
readlink ssize_t readlink(path, buf, bufsiz) 读取符号链接
getcwd char *getcwd(buf, size) 获取当前目录
chdir int chdir(path) 改变当前目录
chmod int chmod(path, mode) 修改权限
chown int chown(path, owner, group) 修改所有者

内存管理

Syscall 签名 说明
mmap void *mmap(addr, len, prot, flags, fd, off) 内存映射
munmap int munmap(addr, length) 解除映射
mprotect int mprotect(addr, len, prot) 修改内存权限
madvise int madvise(addr, length, advice) 内存使用提示
mremap void *mremap(old, old_size, new_size, flags) 调整映射大小
brk int brk(void *addr) 设置堆边界
mlock int mlock(addr, len) 锁定物理内存

网络

Syscall 签名 说明
socket int socket(domain, type, protocol) 创建套接字
bind int bind(sockfd, addr, addrlen) 绑定地址
listen int listen(sockfd, backlog) 监听连接
accept4 int accept4(sockfd, addr, addrlen, flags) 接受连接
connect int connect(sockfd, addr, addrlen) 发起连接
sendto ssize_t sendto(fd, buf, len, flags, addr, addrlen) 发送数据
recvfrom ssize_t recvfrom(fd, buf, len, flags, addr, addrlen) 接收数据
sendmsg ssize_t sendmsg(fd, msg, flags) 发送(高级)
recvmsg ssize_t recvmsg(fd, msg, flags) 接收(高级)
setsockopt int setsockopt(fd, level, optname, optval, optlen) 设置选项
getsockopt int getsockopt(fd, level, optname, optval, optlen) 获取选项
shutdown int shutdown(sockfd, how) 关闭连接方向

I/O 多路复用

Syscall 签名 说明
epoll_create1 int epoll_create1(int flags) 创建 epoll 实例
epoll_ctl int epoll_ctl(epfd, op, fd, event) 管理 epoll 条目
epoll_wait int epoll_wait(epfd, events, maxevents, timeout) 等待事件
poll int poll(fds, nfds, timeout) 等待 fd 事件
select int select(nfds, readfds, writefds, exceptfds, timeout) 经典多路复用

异步 I/O

Syscall 签名 说明
io_uring_setup int io_uring_setup(entries, params) 创建 io_uring
io_uring_enter int io_uring_enter(fd, to_submit, min_complete, flags) 提交/等待
io_uring_register int io_uring_register(fd, opcode, arg, nr_args) 注册资源

信号

Syscall 签名 说明
rt_sigaction int sigaction(signum, act, oldact) 设置信号处理
rt_sigprocmask int sigprocmask(how, set, oldset) 信号屏蔽
signalfd4 int signalfd(fd, mask, flags) 信号转 fd

IPC

Syscall 签名 说明
pipe2 int pipe2(int fds[2], int flags) 创建管道
eventfd2 int eventfd(initval, flags) 事件通知 fd
timerfd_create int timerfd_create(clockid, flags) 定时器 fd
timerfd_settime int timerfd_settime(fd, flags, new, old) 设置定时器

同步

Syscall 签名 说明
futex long futex(uaddr, op, val, timeout, uaddr2, val3) 快速用户态互斥

调度

Syscall 签名 说明
sched_setscheduler int sched_setscheduler(pid, policy, param) 设置调度策略
sched_setaffinity int sched_setaffinity(pid, cpusetsize, mask) 设置 CPU 亲和性
sched_yield int sched_yield(void) 让出 CPU

杂项

Syscall 签名 说明
dup2 / dup3 int dup2(oldfd, newfd) 复制 fd
nanosleep int nanosleep(req, rem) 高精度睡眠
clock_gettime int clock_gettime(clk_id, tp) 获取时间
prctl int prctl(option, ...) 进程控制
seccomp int seccomp(op, flags, args) syscall 过滤