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

歡迎訪問 生活随笔!

生活随笔

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

linux

linux内核杂记(16)-系统调用(3)

發布時間:2025/3/12 linux 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核杂记(16)-系统调用(3) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、系統調用的2種使用方式:
(1)靠C庫支持,用戶程序通過包含標準頭文件并和C庫鏈接,可使用系統調用
(2)調用庫函數,再由庫函數實際調用。
提示:如果你只寫出系統調用,glibc庫恐怕不提供支持。
2、LINUX提供一組宏,用于直接對系統調用 進行訪問。它會設置寄存器并調用陷入指令,這些宏是__syscalln(),其中,n的范圍0-6,代表需要 傳遞給系統調用的參數個數,沒有庫的支持,可使用該宏:
對于這種宏,至少需要2個參數,第1個參數是系統調用的返回值類型,第2個參數是系統調用的名稱。
比如:https://aipro.blog.csdn.net/article/details/111885051所述的自定義系統調用:
系統調用號加入<asm/unistd.h>

#define __NR__mytest 338

然后編寫main測試代碼-宏

#define __NR__mytest 338 __syscall0(long,mytest) int main(){long test1;test1=mytest();return ... }

3、系統調用注意事項:
(1)需要一個系統調用號,這需要內核處于開發版本時,官方分配給你,除非你自己定義自己使用的linux
(2)系統調用一旦加入內核就固化,接口不能改動。
(3)系統調用需要注冊到每個官方linux支持的體系結構中。
因此,在一個流行的官方 linux系統中,加入系統調用并不容易
所以可使用以下替代方案:
實現一個設備節點,并對此實現read()和write(),使用ioctl()對特定設置進行操作或對特定信息進行檢索。
(1)像信息號這樣的某些接口,可用于文件描述符。
(2)把增加信息作為一個文件放在sysfs的合適位置。

總結

以上是生活随笔為你收集整理的linux内核杂记(16)-系统调用(3)的全部內容,希望文章能夠幫你解決所遇到的問題。

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