fgets的使用

原创
2016/01/12 22:55
阅读数 24

解析/proc/net/arp文件

文件事例:

IP address       HW type     Flags       HW address            Mask     Device

192.168.1.2      0x1         0x2         20:89:84:6b:34:7f     *        br0

192.168.1.3      0x1         0x2         2c:d0:5a:9a:07:ea     *        br0

 在文件解析mac地址,使用fgets读取一行,读取完了,会继续读取下一行。

下面是事例代码:

int macOptionList(request *wp, int argc, char **argv)

{

FILE *fp;

char tmpBuf[500];

char *p = NULL;

char mac[20];

int nBytesSent = 0;

fp = fopen("/proc/net/arp", "r");

while(fgets(tmpBuf, sizeof(tmpBuf), fp) != NULL){

p = strchr(tmpBuf, ':');

if(p){

strncpy(mac, p-2, 17);

nBytesSent += req_format_write(wp, (""

"<option value='%s'>%s</option>\n"),

mac, mac);

memset(tmpBuf, 0x00, strlen(tmpBuf));

memset(mac, 0x00, strlen(mac));

}

}

fclose(fp);

return nBytesSent;

}



展开阅读全文
打赏
1
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
1
分享
返回顶部
顶部