[英]How does a syscall get located in Linux?
我試圖在Red Hat 8.0中添加一個新的syscall,但對該機制的某些方面感到困惑。 我一直在遵循本指南: http : //www.linuxjournal.com/article/3326 ,其中詳細介紹了更新entry.S
和unistd.h
的syscall表的步驟。
但是,我似乎無法弄清楚編譯器實際上是如何從該信息中找到系統調用的實現位置。 顯然,其中涉及到#include
,但是我找不到包含在內的任何跡象,也找不到代碼中的許多syscall。 我需要做什么才能找到系統調用?
C庫提供的功能看起來像系統調用。 實際發生的情況是先調用C庫函數,然后再進行系統調用。
如果添加新的系統調用,則要使其易於使用,您需要將其添加到C庫中並重新編譯。
或者,您可以使用syscall函數和C庫提供的宏:syscall和_syscall。
嘗試使用man syscall
和man _syscall
查看詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.