在Linux上的C程序中,从套接字描述符获取struct socket*,struct sock*

在Linux上的C程序中,从套接字描述符获取struct socket*,struct sock*,c,linux,sockets,tcp,ip,C,Linux,Sockets,Tcp,Ip,我正在Linux上开发一个C程序(无特权) 是否可以从套接字描述符获取对struct socket或struct sock的引用 谢谢。看看sockfd_lookup_light function(),系统就是这样做的。看看sockfd_lookup_light function(),系统就是这样做的。如果您在用户模式(例如非内核模式)下工作,您不能直接操作内核结构(包括struct sock)。如果您确实需要访问这些内核结构,则需要编写在内核模式下运行的代码(可能在内核模块中)。如果您在用户模

我正在Linux上开发一个C程序(无特权)

是否可以从套接字描述符获取对
struct socket
struct sock
的引用


谢谢。

看看sockfd_lookup_light function(),系统就是这样做的。

看看sockfd_lookup_light function(),系统就是这样做的。

如果您在用户模式(例如非内核模式)下工作,您不能直接操作内核结构(包括
struct sock
)。如果您确实需要访问这些内核结构,则需要编写在内核模式下运行的代码(可能在内核模块中)。

如果您在用户模式下工作(例如,非内核模式),则无法直接操作内核结构(包括
结构sock
)。如果您确实需要访问这些内核结构,则需要编写以内核模式运行的代码(可能在内核模块中)。

我认为应该是
sockfd\u lookup
<代码>sockfd_lookup_light被标记为静态,因此无法从文件外部调用谢谢你们,我实际上到达了那里,但没有成功。问题是sockfd_lookup()在
/usr/include/linux/net.h
中不存在,但在
/usr/src/linux headers VERSION/include/linux/net.h
中存在。我可以用
gcc
使用这些头进行编译吗?生成的二进制文件会在非特权模式下运行吗?我认为,它应该是
sockfd_lookup
<代码>sockfd_lookup_light被标记为静态,因此无法从文件外部调用谢谢你们,我实际上到达了那里,但没有成功。问题是sockfd_lookup()在
/usr/include/linux/net.h
中不存在,但在
/usr/src/linux headers VERSION/include/linux/net.h
中存在。我是否可以使用这些头使用
gcc
进行编译,生成的二进制文件是否以非特权模式运行?