使用手册页获取结构定义

Ama*_*ony 5 c c++ unix linux network-programming

是否可以使用手册页查看结构定义,就像我们在UNIX中看到函数定义一样?

例如,对于网络编程,我们使用一个名为的结构struct sockaddr_in.反正有没有看到如何使用手册页在库中定义sockaddr_in?

任何帮助将不胜感激!谢谢!

Mat*_*ner 6

对于任何给定的标题:

echo '#include <netinet/in.h>' | gcc -E - | less
Run Code Online (Sandbox Code Playgroud)

产生相关兴趣:

# 225 "/usr/include/netinet/in.h" 3 4
struct sockaddr_in
  {
    sa_family_t sin_family;
    in_port_t sin_port;
    struct in_addr sin_addr;


    unsigned char sin_zero[sizeof (struct sockaddr) -
      (sizeof (unsigned short int)) -
      sizeof (in_port_t) -
      sizeof (struct in_addr)];
  };
Run Code Online (Sandbox Code Playgroud)

这可以使用任何带有预处理器选项的编译器来完成(我知道的每个C编译器都可以这样做).


Ant*_*ony 4

这取决于功能。例如,您可以struct sockaddr通过查看 的手册bind(2)来获取 的定义。

不幸的是,没有专门针对struct sockaddr.

获取此信息的其他方法是搜索适当的头文件。