Linux 有哪些系统调用
1. 进程管理相关系统调用
这些调用用于创建、销毁和管理进程
fork()
: 创建一个子进程,它是父进程的精确副本execve()
: 在当前进程中加载并执行一个新程序wait4()
: 暂停当前进程,等待子进程退出或停止exit()
: 终止当前进程并返回一个状态码。getpid()
: 获取当前进程的 ID。
2. 文件和设备管理相关系统调用
这些调用是应用程序与文件系统交互的核心,包括文件的创建、读写和权限管理
open()
: 打开或创建一个文件,返回一个文件描述符read()
: 从文件描述符中读取数据write()
: 向文件描述符中写入数据close()
: 关闭一个文件描述符lseek()
: 移动文件读写指针的位置stat()
: 获取文件的状态信息,例如大小、权限和创建时间unlink()
: 删除一个文件ioctl()
: 用于设备特有的 I/O 操作
3. 信息维护相关系统调用
这些调用用于获取或设置系统信息,如时间、用户信息和系统配置
gettimeofday()
: 获取当前时间和时区信息uname()
: 获取操作系统的名称和版本信息getuid()
: 获取当前用户的有效 IDgetgid()
: 获取当前用户的有效组 ID
4. 通信相关系统调用
这些调用主要用于进程间通信(IPC)和网络通信
pipe()
: 创建一个匿名管道,用于父子进程间的通信socket()
: 创建一个网络套接字connect()
: 连接到远程主机bind()
: 将套接字绑定到一个地址和端口listen()
: 监听来自客户端的连接请求accept()
: 接受一个客户端的连接
5. 内存管理相关系统调用
这些调用用于分配、释放和管理进程的内存
brk()
: 改变数据段的结束地址mmap()
: 创建一个内存映射,用于在文件中或设备中进行内存操作munmap()
: 撤销mmap()
创建的内存映射