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 过滤 |