2016-02-06 42 views

回答

0

如果您在用戶模式下工作(例如非內核模式),則不能直接操作內核結構(包括struct sock)。如果您確實需要訪問這些內核結構,則需要編寫以內核模式運行的代碼(可能在內核模塊中)。

0

看看sockfd_lookup_light函數(http://lxr.free-electrons.com/source/net/socket.c#L449),這就是系統如何做到這一點。

+0

我覺得應該是'sockfd_lookup'。 'sockfd_lookup_light'被標記爲靜態,因此不能從文件外部調用 – dlmeetei

+0

謝謝大家,我確實到了那裏但沒有成功。問題是'/ usr/include/linux/net.h'中沒有sockfd_lookup(),但它存在於'/ usr/src/linux-headers-VERSION/include/linux/net.h'中。 –

+0

我可以使用'gcc'使用這些頭文件進行編譯,並且生成的二進制文件將以非特權模式運行嗎? –

相關問題