myetheraddr.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 51 行

C
51
字号
#include <u.h>#include <libc.h>#include <ip.h>intmyetheraddr(uchar *to, char *dev){	int n, fd;	char buf[256], *ptr;	if(*dev == '/')		sprint(buf, "%s/stats", dev);	else		sprint(buf, "/net/%s/stats", dev);	fd = open(buf, OREAD);	if(fd < 0) {		/* try the old place - this code will disappear on Nov 18th */		/* Make one exist */		if(*dev == '/')			sprint(buf, "%s/clone", dev);		else			sprint(buf, "/net/%s/clone", dev);		fd = open(buf, ORDWR);		if(fd >= 0)			close(fd);			if(*dev == '/')			sprint(buf, "%s/0/stats", dev);		else			sprint(buf, "/net/%s/0/stats", dev);		fd = open(buf, OREAD);		if(fd < 0)			return -1;	}	n = read(fd, buf, sizeof(buf)-1);	close(fd);	if(n <= 0)		return -1;	buf[n] = 0;	ptr = strstr(buf, "addr: ");	if(!ptr)		return -1;	ptr += 6;	parseether(to, ptr);	return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?