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.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…