title: Are my #include files broken?
body: <p>I have been trying to use ioctl to get the state of my wifi connection, but have run into a problem: whenever i do <code>#include &lt;linux/wireless.h&gt;</code>, gcc generates lots of errors, e.g. </p>
  
  <pre><code>/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;
                  ^
  </code></pre>
  
  <p>and many more similar ones. What does this mean? What do I do? Does it matter that I am running Ubuntu 14.04 in a VM?</p>
  
  <p>In case it helps, my code is simply:</p>
  
  <pre><code>#include &lt;linux/wireless.h&gt;
  int main() { return 0; }
  </code></pre>
  
  <p>and I am compiling with <code>gcc thing.c</code></p>
  
  <p>Thank you.</p>