当前位置: 首页 > news >正文

unistd.h 常用函数速查表

在这篇文章中,我们将整理一份 unistd.h 常用函数速查表,便于快速查找和记忆,涵盖文件 I/O、进程管理、系统信息、用户/组信息等方面。


unistd.h 常用函数速查表(POSIX/Linux/macOS)

1. 文件与 I/O 操作

函数说明示例
int access(const char *path, int mode)检查文件权限/存在性(R_OK 读,W_OK 写,X_OK 执行,F_OK 存在)access("file.txt", R_OK)
off_t lseek(int fd, off_t offset, int whence)改变文件指针位置(SEEK_SET, SEEK_CUR, SEEK_ENDlseek(fd, 0, SEEK_SET)
ssize_t read(int fd, void *buf, size_t count)从文件描述符读取数据read(fd, buf, 100)
ssize_t write(int fd, const void *buf, size_t count)向文件描述符写入数据write(fd, buf, len)
int close(int fd)关闭文件描述符close(fd)

2. 进程管理

函数说明示例
pid_t fork(void)创建子进程pid_t pid = fork();
pid_t getpid(void)获取当前进程 PIDgetpid()
pid_t getppid(void)获取父进程 PIDgetppid()
void _exit(int status)立即退出进程(不执行清理)_exit(0)
int execv(const char *path, char *const argv[])启动新程序(替换当前进程镜像)execv("/bin/ls", args)

3. 系统 & 休眠

函数说明示例
unsigned int sleep(unsigned int seconds)秒级休眠sleep(2)
int usleep(useconds_t usec)微秒级休眠usleep(500000)
long sysconf(int name)获取系统配置信息(如 _SC_NPROCESSORS_ONLN CPU 数)sysconf(_SC_PAGESIZE)
long pathconf(const char *path, int name)获取路径上的系统限制pathconf("/", _PC_NAME_MAX)

4. 用户 / 组信息

函数说明示例
uid_t getuid(void)获取实际用户 IDgetuid()
uid_t geteuid(void)获取有效用户 IDgeteuid()
gid_t getgid(void)获取实际组 IDgetgid()
gid_t getegid(void)获取有效组 IDgetegid()

5. 常用宏定义

说明
R_OK可读权限
W_OK可写权限
X_OK可执行权限
F_OK文件是否存在
SEEK_SET文件开头
SEEK_CUR当前位置
SEEK_END文件末尾

6. 示例:检查文件并读取内容

#include <unistd.h>
#include <fcntl.h>
#include <iostream>int main() {if (access("test.txt", R_OK) != 0) {std::cerr << "File not readable or not exist.\n";return 1;}int fd = open("test.txt", O_RDONLY);if (fd == -1) {perror("open");return 1;}char buf[100];ssize_t n = read(fd, buf, sizeof(buf) - 1);if (n >= 0) {buf[n] = '\0';std::cout << "Content: " << buf << "\n";}close(fd);return 0;
}
http://www.xdnf.cn/news/1343575.html

相关文章:

  • 【Linux仓库】进程的“夺舍”与“飞升”:exec 驱动的应用现代化部署流水线
  • Elasticsearch倒排索引和排序
  • Elasticsearch核心概念
  • 【机器学习深度学习】大模型分布式推理概述:从显存困境到高并发挑战的解决方案
  • 用sftp协议实现对文件的上传下载
  • 高压、高功率时代,飞机电气系统如何保障安全?
  • PDF文档安全升级:三招实现文本转曲线(防篡改+高清输出)
  • 一分钟docker部署onlyoffice 在线预览word pdf excel...
  • 嵌入式第三十五天(网络编程)
  • week3-[二维数组]最大列
  • WindowsAPI|每天了解几个winAPI接口之网络配置相关文档Iphlpapi.h详细分析9
  • Windows应急响应一般思路(二)
  • 【基础算法】离散化
  • 驱动(二)uboot编译+内核编译+文件系统
  • AI 绘画争议背后:版权归属、艺术原创性与技术美学的三方博弈
  • 排序---插入排序
  • Oracle APEX 经典报表中的Checkbox
  • 使用EasyExcel自定义导出表格
  • 开发二手车小程序时,如何确保信息的真实性和可靠性?
  • C#:窗体间传值
  • 计数组合学7.20(平面分拆与RSK算法)
  • 亚矩阵云手机:亚马逊第三方店铺多账号安全合规运营的核心技术支撑
  • Matplotlib 可视化大师系列(六):plt.imshow() - 绘制矩阵与图像的强大工具
  • 2026年计算机毕设推荐:基于大数据的慢性肾病数据可视化分析系统技术选型指南【Hadoop、spark、python】
  • 决策树基础学习教育第一课:从概念到核心原理
  • 【Canvas与旗帜】美国星条旗玻璃光圆饼
  • Lua脚本如何执行主程序的C函数
  • ODYSSEY:开放世界四足机器人的探索与操控,助力长范围任务
  • Node.js 开发 JavaScript SDK 包的完整指南(AI)
  • 基于Node.js服务端的社区报修管理系统/基于express的在线报修管理系统