當前位置:
首頁 >
linux 内核头文件、内核库文件
發布時間:2023/12/10
55
豆豆
生活随笔
收集整理的這篇文章主要介紹了
linux 内核头文件、内核库文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
與用戶空間應用不同的是,內核不能調用標準C庫或其它任何不屬于內核的庫。主要原因是,速度及大小的限制。
標準C庫對內核而言實在是太大了。
許多常用的的 libc 函數已經在內核中實現了。內核中的庫文件是在內核的根目錄下 lib 目錄下存放。
如常用的字符串操作函數是在 lib/string.c 中定義的,調用時主需要將頭文件 <linux/string.h>包含進即可。
關于內核的頭文件,內核是不能包含內核之外的頭文件的,如同內核不能調用內核之外的庫一樣。
1)基本的頭文件放在內核的 include/ 目錄下,比如以下引用的頭文件
#include <linux/i2c.h>位于 include/linux/i2c.h
2)平臺相關的頭文件位于 arch/<architecture>/include/asm 下,在包含這些頭文件時以 asm/ 為前綴,如下:
#include <asm/ioctl.h>內核中不能調用 printf(), 但內核提供了 printk() 供我們使用。
printk() 與printf()的用法很相似,如下:
printk("Hello world! A string '%s' and an integer '%d'\n", str, i);printk() 與 printf() 一個顯著的區別是,printk() 允許使用優先級標記。該優先級標志被 syslogd 進程用來決定在哪顯示
內核打印信息。如下例:
printk(KERN_ERR "this is an error!\n");總結
以上是生活随笔為你收集整理的linux 内核头文件、内核库文件的全部內容,希望文章能夠幫你解決所遇到的問題。