當前位置:首頁 » 操作系統 » 頭文件linux

頭文件linux

發布時間: 2022-09-22 09:06:31

linux下,C語言頭文件在哪

一、 C標准庫頭文件,以及Linux的標准庫文件的對應頭文件,默認放在/usr/include下。 如圖:

標識出了最常用的幾個頭文件。

二、 自定義頭文件,或者集成頭文件,需要在編譯的時候指定。可以在命令行中指定,也可以在makefile中指定。

指定自定義頭文件路徑方式為:

-IPATH1 -IPATH2...

如當前目錄下的inc文件夾,指定為頭文件, 那麼在編譯a.c時,可以命令寫作:

gcc a.c -I./inc -o a.out

⑵ 請問linux里頭文件與庫文件有什麼區別

頭文件中有函數的申明,庫文件實現函數的定義。

比如,printf函數。使用時應包括stdio.h,打開stdio.h你只能看到,printf這

個函數的申明,卻看不到printf具體是怎麼實現的,而函數的實現在相應的C庫

中。而庫文件一般是以二進制形式而不是C源文件形式提供給用戶使用的。程序

中包括了stdio.h這個頭文件。鏈接器就能根據頭件中的信息找到printf這個函

數的實現並鏈接進這個程序代碼段里。

總結起來就是,庫文件通過頭文件向外導出介面。用戶通過頭文件找到庫文件中

函數實現的代碼從而把這段代碼鏈接到用戶程序中去。

⑶ linux 下的內核頭文件放在哪裡

linux下的內核頭文件放在/usr/include/linux/和/usr/include/sys/

linux目錄樹:
scripts目錄
該目錄中不包含任何核心代碼,該目錄下存放了用來配置內核的腳本和應用程序源碼
lib目錄
該目錄主要包含兩部分內容:gnuzip解壓縮演算法,用於在系統啟動過程中將壓縮的內核鏡像解壓縮;剩餘的文件用於實現一個C庫的子集,主要包括字元串和內存操作等相關函數。
mm目錄
該目錄包含了體系結構無關的內存管理代碼,包括通用的分頁模型的框架、夥伴演算法的實現和對象緩沖器slab的實現代碼。
include目錄
這個目錄包含了Linux源代碼目錄樹中絕大部分頭文件,每個體系架構都在該目錄下對應一個子目錄,該子目錄中包含了給定體系結構所必需的宏定義和內聯函數。
init目錄
該目錄中存放的是系統核心初始化代碼,內核初始化入口函數start_kernel就是在該目錄中的文件main.c內實現的。
kernel目錄
該目錄中存放的是Linux內核的最核心的代碼,用於實現系統的核心模塊,這些模塊包括:進程管理、進程調度器、中斷處理、系統時鍾管理、同步機制等。
arch目錄
該目錄中的每個子目錄中都與某種體系結構相對應,用於存放體系結構相關代碼,向平台無關的系統核心模塊提供所需的功能介面。每個體系結構對應的子目錄下通常至少包含以下幾個子目錄:kernel子目錄、lib子目錄、mm子目錄、boot子目錄。
系統次核心組件包括:
block目錄:用於實現塊設備的基本框架和塊設備的I/O調度演算法。
usr目錄:該目錄中的代碼為內核尚未完全啟動時執行用戶空間代碼提供了支持
ipc目錄:該目錄中的文件用於實現System V的進程間通信模塊。
driver目錄:用於存放各類設備的驅動程序。
sound目錄:存放了聲音系統架構,如Open Sound System(OSS)、Advanced Linux Sound Architecture(ALSA)的相關代碼和具體音效卡的設備驅動程序。
security目錄:存放了Security-Enhanced Linux(SELinux)安全框架的實現代碼
crypto目錄:該目錄中存放了相關的加密演算法的代碼。
Documentation目錄:存放了與內核相關的文檔。
net和fs目錄:包含linux內核支持的眾多網路協議和文件系統。

⑷ 在linux設備驅動中我們使用到的頭文件指的是什麼

是/usr/include/下的頭文件,像#include
<linux/wrapper.h>
就是指文件
/usr/include/linux/wrapper.h,有什麼用就看名字吧……
。注意就是有些發行版默認沒有這些文件的,要搞個
kernel-header之類名字的包

⑸ linux系統中的頭文件#include &ls;sys⁄stat.h>

調用 stat(),fstat(), lstat(), 等函數時,需要包含 #include <sys/stat.h> 頭文件,它包含了要用到一些數據類型,結構類型。例如:
dev_t st_dev ID of device containing file
ino_t st_ino file serial number
mode_t st_mode mode of file (see below)
nlink_t st_nlink number of links to the file
uid_t st_uid user ID of file
gid_t st_gid group ID of file
dev_t st_rdev device ID (if file is character or block special)
off_t st_size file size in bytes (if file is a regular file)
time_t st_atime time of last access
time_t st_mtime time of last data modification
time_t st_ctime time of last status change
用法:包含頭文件:
#include <sys/types.h>
#include <sys/stat.h>
程序里,需要時可調用下列函數,下面是函數原型
int chmod(const char *, mode_t);
int fchmod(int, mode_t);
int fstat(int, struct stat *);
int lstat(const char *, struct stat *);
int mkdir(const char *, mode_t);
int mkfifo(const char *, mode_t);
int mknod(const char *, mode_t, dev_t);
int stat(const char *, struct stat *);
int main(){
具體的調用語句和程序可寫在這里
}

⑹ linux查看包含的頭文件源文件

linux下的內核頭文件放在/usr/include/linux/和/usr/include/sys/linux目錄樹:scripts目錄該目錄中不包含任何核心代碼,該目錄下存放了用來配置內核的腳本和應用程序源碼。lib目錄該目錄主要包含兩部分內容:gnuzip解壓縮演算法,用於在系統啟動過程中將壓縮的內核鏡像解壓縮;剩餘的文件用於實現一個C庫的子集,主要包括字元串和內存操作等相關函數。mm目錄該目錄包含了體系結構無關的內存管理代碼,包括通用的分頁模型的框架、夥伴演算法的實現和對象緩沖器slab的實現代碼。include目錄這個目錄包含了Linux源代碼目錄樹中絕大部分頭文件,每個體系架構都在該目錄下對應一個子目錄,該子目錄中包含了給定體系結構所必需的宏定義和內聯函數。init目錄該目錄中存放的是系統核心初始化代碼,內核初始化入口函數start_kernel就是在該目錄中的文件main.c內實現的。kernel目錄該目錄中存放的是Linux內核的最核心的代碼,用於實現系統的核心模塊,這些模塊包括:進程管理、進程調度器、中斷處理、系統時鍾管理、同步機制等。arch目錄該目錄中的每個子目錄中都與某種體系結構相對應,用於存放體系結構相關代碼,向平台無關的系統核心模塊提供所需的功能介面。每個體系結構對應的子目錄下通常至少包含以下幾個子目錄:kernel子目錄、lib子目錄、mm子目錄、boot子目錄。系統次核心組件包括:block目錄:用於實現塊設備的基本框架和塊設備的I/O調度演算法。usr目錄:該目錄中的代碼為內核尚未完全啟動時執行用戶空間代碼提供了支持ipc目錄:該目錄中的文件用於實現SystemV的進程間通信模塊。driver目錄:用於存放各類設備的驅動程序。sound目錄:存放了聲音系統架構,如OpenSoundSystem(OSS)、(ALSA)的相關代碼和具體音效卡的設備驅動程序。security目錄:存放了Security-EnhancedLinux(SELinux)安全框架的實現代碼crypto目錄:該目錄中存放了相關的加密演算法的代碼。Documentation目錄:存放了與內核相關的文檔。net和fs目錄:包含linux內核支持的眾多網路協議和文件系統。

⑺ linux系統調用包含什麼頭文件

man
fork
#include
<sys/types.h>
#include
<unistd.h>
pid_t
fork(void);
所有的系統調用都要包含<unistd.h>
裡面定義了所有的系統調用號,指示怎麼從用戶態轉變到內核態

⑻ 小技巧之查看Linux系統函數頭文件

分享一個小技巧。

我們在寫Linux應用程序時,有時候記不清某個系統函數的頭文件,往往要麼網路,要麼查源碼,這樣做都不方便,費時費力。
其實,可以用一個命令搞定:man。

比如,我要查sleep函數的頭文件,在終端下敲命令: man sleep ,輸出信息:

並沒有發現頭文件!但是,請看紅框里的內容,意思是當前顯示的只是sleep手冊的第1頁,還有第3頁可以參考,繼續輸命令 man 3 sleep ,輸出信息:

看紅框中的內容,是不就看到sleep函數的頭文件及函數原型定義了!

查看read函數頭文件,同樣的,輸入 man read ,直接可以查到:

是不是很方便啊!!!

⑼ linux下 頭文件,該怎麼處理

在Linux下面,如果要編譯一個C語言頭文件,,要使用GNU的gcc編譯器,以一個實例來說明如何使用gcc編譯器:
假設有下面一個非常簡單的源程序(hello.c):

1
2
3
4

int main(int argc,char **argv)
{
printf("Hello Linux\n");
}

要編譯這個程序,只要在命令行下執行:

1

gcc -o hello hello.c

gcc 編譯器就會生成一個hello的可執行文件;執行./hello,就可以看到程序編譯後的輸出結果「Hello Linux」。

⑽ 如何在Linux上安裝內核頭文件

什麼系統?CentOS、Fedora、RHEL等直接用yum
install
kernel-headers。
Ubuntu嘗試用apt-get
install。
不過,建議安裝前,先查看一下當前使用的內核版本。
linux下可能會有2個內核共存。例如2.6.18和2.6.33共存。每次啟動時,都會選定一個內核版本。那麼。安裝kernel-headers時,選擇的版本應當與當前使用的內核版本一致。
就是2.6.18的內核配2.6.18的kenrl-headers。
因為以前曾經有人遇到過不匹配的狀況,導致某些程序功能無法安裝使用。
例如2.6.33的kernel已經發布安裝但2.6.33的kernel-headers還沒有發布。
結果以2.6.33內核登錄系統後,安裝kernel-headers時就出錯了。
可以使用uname
-r來查看當前內核版本。
使用yum
list
|
grep
kernel-headers來查看當前yum倉庫中的kernel-headers的版本是否和內核版本一致。
如果一致,直接yum
install
kernel-headers
如果不同,重啟系統,換其他內核版本登錄後,再yum
install。
Ubuntu參考執行

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:336
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:32
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:944
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:742
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:803
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:511
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:372