在这篇文章中,我们将整理一份 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.pswp.cn/bicheng/94191.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/94191.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/94191.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【电子通识】芯片生产考验“三重门”之CP、FT与WAT测试

在我们日常生活中&#xff0c;从手机、电脑到汽车、家电&#xff0c;都离不开一颗颗小小的芯片。你可曾想过&#xff0c;这些功能强大的芯片在出厂前要经过怎样严苛的“体检”才能保证质量可靠&#xff1f;今天&#xff0c;我们就来聊聊芯片制造过程中三道至关重要的测试关卡&a…

Java RESTful API 构建从入门到精通:一步步打造高效后端服务

还在为高昂的AI开发成本发愁?这本书教你如何在个人电脑上引爆DeepSeek的澎湃算力! 在当今数字化时代,RESTful API 已成为现代Web应用的核心组成部分,它提供了一种标准化、灵活的方式来实现前后端分离和跨平台数据交互。本文作为一篇完整的指南,将从基础概念入手,详细阐述…

TypeScript 接口(interface)

一、接口基础概念接口&#xff08;interface&#xff09;是 TypeScript 的核心类型系统工具&#xff0c;用于定义对象的结构规范。它不关心具体实现细节&#xff0c;只强制要求符合接口定义的对象必须包含指定属性和方法。例如&#xff1a;interface Person {name: string;age:…

selenium3.141.0执行JS无法传递element解决方法

问题&#xff1a;在Chrome 131版本以下执行下面代码没有问题&#xff0c;但是在131版本以上出现element无法传递问题&#xff0c;执行下面代码会出现 "Message: javascript error: Cannot read properties of undefined (reading click)"# xpath匹配元素&#xff0c;…

汽车主机厂为何开始押注平台化视觉?

近年来&#xff0c;随着智能制造、出口质量标准、新能源整车结构复杂度等多重因素叠加&#xff0c;越来越多主机厂开始从“点状部署”转向“系统化导入”&#xff0c;平台化的AI视觉检测体系正逐步成为整车厂的标准化选项。在过去&#xff0c;汽车制造四大车间——焊装、涂装、…

STM32 - Embedded IDE - GCC - 重定向printf到串口

导言如上所示&#xff0c;在不同的编译器下&#xff0c;重定向printf到串口时&#xff0c;使用的函数不一样。 ARMCC&#xff08;Keil-MDK&#xff09;使用fputc()GCC使用_write() 总之&#xff0c;GCC/newlib的printf()走_write()&#xff0c;不是fputc()。

51单片机-中断系统

本质概述思维导图&#xff1a;51单片机中断系统中断系统概述中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求&#xff0c;要求CPU暂停当前的工作&#xff0c;转而去处理这个紧急事件&#xff0c;处理完…

ubuntu - 终端工具 KConsole安装

地址&#xff1a; https://konsole.kde.org/download.html 直接使用自带安装管理器安装即可

QT-左右侧边栏动画

QT-左右侧边栏动画演示效果一、核心程序二、链接演示效果 一、核心程序 #ifndef SLIDEPANEL_H #define SLIDEPANEL_H#include <QWidget> #include <QPropertyAnimation> #include <QPushButton> #include <QVBoxLayout>class SlidePanel : public QWi…

WebRTC 结合云手机:释放实时通信与虚拟手机的强大协同效能

开发一个基于 WebRTC 技术的云手机群控系统&#xff0c;实现通过浏览器远程控制多台云手机&#xff0c;并提供文件管理、代理管理、备份管理等功能。这里只详细分享 WebRTC 技术。 https://github.com/LingyuCoder?tabrepositories&qsky&type&language&sort …

Kafka中zk的作用是什么

Zookeeper是分布式协调&#xff0c;注意它不是数据库 kafka中使用了zookeeper的分布式锁和分布式配置及统一命名的分布式协调解决方案 在kafka的broker集群中的controller的选择&#xff0c;是通过zk的临时节点争抢获得的 brokerID等如果自增的话也是通过zk的节点version实现的…

【lucene】lucene常用查询一览

Lucene 里除了常见的 **TermQuery / BooleanQuery / PhraseQuery / FuzzyQuery / SpanNearQuery** 之外&#xff0c;还有不少“特殊家族”。下面按“族”归纳&#xff0c;一眼就能知道它们各自解决什么问题、跟普通倒排检索的差别在哪。────────────────── …

base64认识实际使用

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一&#xff0c;Base64就是一种基于64个可打印字符来表示二进制数据的方法。 Base64&#xff0c;就是包括小写字母a-z、大写字母A-Z、数字0-9、符号"“、”/"一共64个字符的字符集&#xff0c;&#xff08;任何…

LX8201微孔雾化驱动芯片应用笔记一DC5V供电

前言LX8201是深圳市乐⽽信科技服务有限公司最新⾃研的⼀款微孔雾化⽚专⽤驱动芯⽚&#xff0c;结合标准外围电路&#xff0c;能有效驱动控制市⾯上各种微孔雾化⽚&#xff0c;基于独特的电路设计和软件算法&#xff0c;其在功耗以及成本上均具有明显的优势。本应用笔记将帮助用…

MySQL索引优化之索引条件字段类型不同

在sql的联表查询中&#xff0c;on后面相等的两个字段如果字段类型不一致&#xff0c;尽管它们都加了索引&#xff0c;最终查询的时候也不会走索引&#xff0c;这是因为会触发隐式类型转换导致索引失效。 例如 Select * from Orders o left join User u on o.user_id u.id; 假如…

【Linux】信号(二):Linux原生线程库相关接口

【Linux】信号的控制使用一.线程的创建pthread_create()接口二.线程等待1.为什么要线程等待&#xff1f;2.pthread_join()三.线程中止1.return2.pthread_exit五.线程应用C自带多线程在上次的博客中主要讲解了什么是线程 这次的博客主要是带大家把线程的相关接口简单的使用一下 …

小程序被爬虫攻击,使用waf能防护吗?

在移动互联网时代&#xff0c;小程序以轻量化、高便捷性成为流量入口新宠&#xff0c;但也因此成为爬虫攻击的重灾区。从电商平台的价格数据爬取到内容平台的版权盗用&#xff0c;爬虫攻击不仅消耗服务器资源&#xff0c;更可能导致商业机密泄露与用户权益受损。面对这类威胁&a…

通过自动化本地计算磁盘与块存储卷加密保护数据安全

作为打造开发者首选云平台使命的一部分&#xff0c;我们持续推出免费的智能化功能与产品来加强云资源安全。最新推出的本地磁盘加密功能是我们正在所有核心计算区域逐步部署的最新计算特性。当您在首选区域启用本地磁盘加密功能后&#xff0c;新部署的计算实例将默认自动启用数…

中文房间悖论:人工智能理解力的哲学拷问

本文由「大千AI助手」原创发布&#xff0c;专注用真话讲AI&#xff0c;回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我&#xff0c;一起撕掉过度包装&#xff0c;学习真实的AI技术&#xff01;1 思想实验阐述中文房间&#xff08;Chinese Room&#xff09;思想实验…

mac如何运行windows程序?性能党vs便捷党选择指南

macOS的流畅稳定虽让人青睐&#xff0c;但系统的不兼容性是个大问题。有的用户想要使用某个专业程序&#xff0c;发现只有Windows版本&#xff0c;然而没法直接在mac上运行&#xff0c;非常懊恼&#xff01;mac如何运行windows程序&#xff1f;本文将提供多个可行的方法&#x…