直接上代码,此段代码选取自realtek的wifi驱动中的一段代码
fp = filp_open("/data/wifimac.txt", O_RDWR, 0644);
if (IS_ERR(fp)) {
pEEPROM->bloadmac_fail_flag = _TRUE;
DBG_871X("Error, wifi mac address file doesn't exist.\n");
} else {
fs = get_fs();
set_fs(KERNEL_DS);
DBG_871X("wifi mac address:\n");
vfs_read(fp, source_addr, 18, &pos);
source_addr[17] = ':';
head = end = source_addr;
for (i=0; i<ETH_ALEN; i++) {
while (end && (*end != ':') )
end++;
if (end && (*end == ':') )
*end = '\0';
pEEPROM->mac_addr[i] = simple_strtoul(head, NULL, 16 );
if (end) {
end++;
head = end;
}
DBG_871X("%02x \n", pEEPROM->mac_addr[i]);
}
DBG_871X("\n");
set_fs(fs);
pEEPROM->bloadmac_fail_flag = _FALSE;
filp_close(fp, NULL);
}