Files
2025-09-25 04:01:20 +08:00

52 lines
2.0 KiB
Markdown

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