2011-08-10 48 views
2

我在調整位於linux內核的/net目錄中的代碼。如何從Linux內核進行標準庫調用?

我正在嘗試像打印的東西,但我看到沒有相關的標題(如stdlib.h,stdio.h等)。那麼我如何在內核級別執行此操作?

+0

kernel/signals.c中的kill_pgrp()怎麼辦? – user489152

回答

5

你不能在內核中使用任何用戶空間庫函數,你應該只使用內核導出的函數。因此,不會有stdio.h,stdlib.h等等。如果你想在內核中打印某些東西,你可以使用printk()函數,這相當於在用戶空間中的printf()

另請參閱我的博客文章Linux Module Programming Part1Part2

2

內核模塊無權訪問C標準庫。內核中有幾個功能可用;請在內核源代碼或您最喜愛的Linux內核編程手冊(如果您沒有,Linux Device Drivers是一個很好的,並且可以在線獲取)中查找lib directory。對於printf調試,有printk,它將消息發送到內核日誌。