我的#include文件坏了吗?

时间:2014-07-10 22:31:00

标签: c linux ubuntu wifi

我一直在尝试使用ioctl来获取我的wifi连接状态,但遇到了一个问题:每当我#include <linux/wireless.h>时,gcc会产生很多错误,例如:

/usr/include/linux/wireless.h:869:18: error: field ‘src_addr’ has incomplete type
struct sockaddr src_addr;
                ^
/usr/include/linux/wireless.h:880:18: error: field ‘bssid’ has incomplete type
struct sockaddr bssid;
                ^

以及更多类似的。这是什么意思?我该怎么办?我在VM中运行Ubuntu 14.04是否重要?

如果它有帮助,我的代码就是:

#include <linux/wireless.h>
int main() { return 0; }

我正在使用gcc thing.c

进行编译

谢谢。

1 个答案:

答案 0 :(得分:4)

你需要包含sockaddr。 你必须包括:

  #include <netinet/in.h>
  #include <sys/socket.h>