簡體   English   中英

我怎么知道一個函數是否進入內核

[英]How can I tell a function enters kernel or not

我正在實現一個程序,使其盡可能經常在用戶空間中運行。 因此,我試圖調用盡可能少地進入和離開內核空間的函數。 例如,我使用一些DMA API,該API讀/寫但繞過內核。

我不知道如何告訴一個函數是否需要進入內核空間。 例如,我想調用getenv()來獲取主機設置的環境變量,但擔心它可能會傳遞我的程序並進入內核空間。 我無法從手冊頁中找到此信息。 這是getenv()的手冊頁。

您是否通過strace運行程序? 這將使您知道要在哪里進行進入內核空間的系統調用

我認為大多數IO功能都會導致您的程序進入內核? 也許您應該檢查自己使用的系統API

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM