Skip to main content

Module syscall

Module syscall 

Source
Available on Unix and crate feature sys-syscall and crate feature sys-unix and crate feature sys only.
Expand description

Unix 裸调用的高层封装:各平台调用号(constants)、标志位(flags)、ptrace 请求号(ptrace_req)、统一错误(SysResult / SysErr)与常用调用封装(sys_*)。

需要启用 "sys-unix" 特性。

Modules§

constantsx86-64 and (Android or Linux)
Linux x86_64 平台的裸系统调用号。
flagsNon-macOS
非 macOS 平台的 open/mmap/socket 等标志位常量。
ptrace_reqNon-macOS
非 macOS 平台的 ptrace 请求号常量。

Structs§

ErrorMessage
定容 64 字节的错误消息,以 UTF-8 存储,超长截断。

Enums§

SysErr
裸系统调用封装的错误类型。

Functions§

sys_accept
接受监听套接字上的连接,返回 (新连接 fd, 对端地址长度)。
sys_bind
将套接字绑定到 addr 描述的地址上。
sys_close
关闭文件描述符。
sys_connect
将套接字连接到 addr 描述的地址上。
sys_execve
以 argv/envp 执行 path 指定的程序,成功时不返回。
sys_exit
退出当前进程,不返回。
sys_fork
派生子进程,父进程返回子进程 PID,子进程返回 0。
sys_getpid
获取当前进程 ID。
sys_gettid
获取当前线程 ID(macOS 下为 THREAD_SELFID)。
sys_listen
使套接字进入监听状态。
sys_lseek
重定位文件描述符的读写偏移。
sys_mmap
建立内存映射,返回映射起始地址。
sys_mprotect
修改既有内存映射的保护属性。
sys_munmap
解除由 sys_mmap 建立的内存映射。
sys_open
以 flags/mode 打开 path 指向的路径,返回文件描述符。
sys_ptrace
发起 ptrace 调试请求,请求号见 ptrace_req。
sys_read
从文件描述符读取至多 buf.len() 字节。
sys_socket
创建套接字,返回文件描述符。
sys_wait4
等待子进程状态变化,status/rusage 可为空指针表示不接收。
sys_write
向文件描述符写入 buf 的全部内容(单次调用,不保证写完)。

Type Aliases§

SysResult
裸系统调用封装的统一返回类型。