我使用 struct iwreq 撰寫了非常簡單的代碼。另外,我預計這將是錯誤的。但它已編譯并有效。
我查看了 linux/wireless.h,里面有 struct iwreq 的定義。并且 iwreq 沒有??將 ifr_name 作為成員。
有人可以給我一個想法嗎?這是簡單的代碼。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <linux/wireless.h>
int main(void)
{
char *intf = "eth0";
struct iwreq iwr;
strncpy(iwr.ifr_name, intf, sizeof(iwr.ifr_name));
printf("main : intf = %s, iwr.ifr_name = %s\n", intf, iwr.ifr_name);
return 0;
}
uj5u.com熱心網友回復:
wireless.h包括if.h,在里面if.h你可以找到:
#define ifr_name ifr_ifrn.ifrn_name /* interface name */
所以代碼被翻譯成:
strncpy(iwr.ifr_ifrn.ifrn_name, intf, sizeof(iwr.ifr_ifrn.ifrn_name));
uj5u.com熱心網友回復:
/usr/include/linux/wireless.h 包含 linux/if.h:
#include <linux/if.h> /* for IFNAMSIZ and co... */
在 /usr/include/linux/if.h 中有:
#define ifr_name ifr_ifrn.ifrn_name /* interface name */
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/319094.html
