日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux的目录结构和头文件相关;哪里找- sys/types.h, sys/stat.h

發布時間:2025/6/17 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux的目录结构和头文件相关;哪里找- sys/types.h, sys/stat.h 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。 本文鏈接:https://blog.csdn.net/qq_29757283/article/details/77700319

KEYWORD : sys/types.h; sys/stat.h; linux; 頭文件;reserve place; reserve place


2018/Apr/01 更新:
??關于 sys/***.h 的頭文件,在不同平臺上通過建立軟連接的方式可以解決。
??建立軟連接的方式可以參考本人的這篇blog ===> 獲得(讀取)一個文件內的所有數據的字節總數 <=== 這個鏈接中的 ?<h3>其中 和系統有關的 頭文件需要做處理:</h3> ?即是找到 sys/×××.h 頭文件,并且創建軟連接的方式。


??在查看各種編程書,源代碼的時候,個人經常遇到對源代碼引用的頭文件的困惑。
??比如,對于 #include <stdio.h>; #include <stdlib.h>; #include <string.h>; 這種常見的頭文件不以為然,自然如果編譯的工具(鏈)沒有問題,也就不會存在找不到頭文件的情況。
??但是,如果遇到 #include <unistd.h> ;#include <fcntl.h> 這樣的頭文件就要想一想了,因為對于一個沒怎么接觸系統編程的人來說,實在是不熟悉這些頭文件。
??要是再遇到這樣的頭文件: #include <sys/stat.h>; #include <sys/types.h>; 這樣的頭文件更是容易出問題,因為 sys 目錄下的頭文件并未這么簡單寫就可以了。

??那么,其實問題也很簡單,到底linux下這些頭文件都在哪里?
??相信用linux 編程的同學們都是通過 GNU 工具鏈來編譯鏈接源代碼的。
??比如 gcc helloworld.c -o helloworld 像這樣的命令應該是比較熟悉了。
??這種情況下,明明 helloworld.c 中是有 #include <stdio.h> 這個頭文件的,而在編譯鏈接命令中并沒有體現出使用這個頭文件的樣子嘛…..

Linux的目錄結構

根目錄:

??這一點要和linux 系統本身的目錄結構有關系,我們知道使用 linux 一般來說是不會去關注磁盤分區的,所有的內容都在 "/" 這一 root 根目錄下,

用戶目錄:

??比如我們用戶最直接使用的,就是 /home/username/ 這一目錄,它就是在根目錄 "/" 下的 "home" 文件夾,而home文件夾下就是根據linux上可以有多個用戶這個特點,按用戶名,分為多個文件夾。如果你是 user1,那你就分的目錄"/home/user1/", 這時候,我們還可以發現在 “/home/user1/” 這個目錄下,系統自動分配了 “Documents/”; “Music/”; “Downloads/”; …等等這類普通常用的文件夾。
??到目前為止我舉了一個 /home/ 的例子,簡單說明了一下我想說的 linux 不分區的目錄結構,

可執行二進制文件:

??在 linux 下工作,那就不得不提命令command這個神奇的東西了,說幾個常用的命令: ls, mkdir, rm, grep, ps… 這些命令,都被放在了根目錄"/" 的 “bin/” 目錄下, 也就是 “/bin/” ;可以使用 $ls /bin <- 這個命令查看一下。

??以上說了這些,是為了對 linux 的這種目錄結構產生一個感性的認識。

應用程序:

??那么同樣,根目錄 "/" 它也為所有的應用程序有關的單獨分配了一個文件夾,那就是 “usr/” 文件夾。通過 $cd /usr 可以到達該目錄下。

用戶安裝程序:

??之所以說”為應用程序有關“,那是因為這個目錄下不單單只保存應用程序。我們通過命令#apt-get install application 安裝的應用程序,幾乎都是安裝在 “/usr/share/” 這個目錄下,使用 $ls /usr/share/ 命令可以看到許多”文件夾“,其文件夾名對應的就是應用名。

用戶(程序員)編寫程序:

??通過命令 $cd /usr 到達該目錄下, $ls -CF 可以看到 “/usr/” 目錄下的文件夾和文件,注意到有 “include/” 這個文件夾,這個文件夾就是這篇文件要介紹的重點了,他就是 linux 下,GNU 編譯鏈接的 C標準庫 和 系統調用 的所有 頭文件的集合。
??通過 /usr$cd include 就可以進入到這個目錄下了,
??然后馬上執行 /usr/include$ls -CF 來看看這個文件夾下都放了什么…… 可以看到 stdio.h; stdlib.h; string.h… 等等這些熟悉頭文件都在,等等,那前面說的 “sys/stat.h; sys/tpyes.h” 這類頭文件在哪里?
??這就跟平臺有關系了,以Ubuntu為例,在/usr/include/ 目錄下,可以看到 “x86_64-linux-gnu/” 這個目錄,其實 “sys/” 這個目錄相關的頭文件都在這下面

> 當然,不同的計算機不同,你有可能看到的是 “x386-linux-gnu/”
(↑可能寫的不太準確,自己沒有32位的電腦,網上看到路徑,記不太清了);
> 在樹莓派上,你看到的將會是“arm-linux-gnuea…/” 這個目錄;
> 而在 cygwin on windows,就是直接的“sys/” 目錄!


??到目前為止,你應該是都知道說需要的 ISO C 和 POSIX 等 提供的 頭文件到哪里去尋找了,
??如果在看書、看代碼看到一個不熟悉的 頭文件,不清楚自己電腦上有沒有…這個時候使用命令↓
$find /usr/include/[theHeadfileName].h
??如果有正確的輸出,就可以知道我們可以大膽地將“[theHeadfileName].h” 這個頭文件包含在代碼中了。


2018/Jan/09 新增:


對 GNU 編譯器 和 C標準庫(包括其它庫)的新了解

?? 在學習交叉編譯的時候,新了解到了一些跟編譯工具鏈有關的知識(內容), 所以對博客做一次更新(補充)
?? Mint LINUX 環境
?? 安裝 主機(本機)編譯工具鏈
?? 查看gcc 編譯工具信息(的命令)
???? cpp -V $>/dev/null

顯示的信息

?? (個人理解(解釋)補充)
———— END 新增 —————————–


??在學習 linux 上實現 一個 daemon 程序時,看到的幾個不熟悉的頭文件,所以寫了這篇 -> 怎么確定自己的編譯環境有沒有支持該頭文件,把本人測試、修改過的 daemon 程序傳到了CSDN資源中了,有興趣的同學可以下載看看。

“一個可以在Cygwin on windows 和 Raspberry Pi 上 $make 通過的簡單 daemon 例程


the end


總結

以上是生活随笔為你收集整理的Linux的目录结构和头文件相关;哪里找- sys/types.h, sys/stat.h的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。