⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pr_rou~1.c

📁 操作系统源代码
💻 C
字号:
/*ucb/pr_routes.c*/#include <sys/types.h>#include <sys/ioctl.h>#include <errno.h>#include <fcntl.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <net/netlib.h>#include <net/gen/in.h>#include <net/gen/route.h>#include <net/gen/netdb.h>#include <net/gen/inet.h>char *prog_name;int main _ARGS(( int argc, char *argv[] ));void print_route _ARGS(( nwio_route_t *route ));void usage _ARGS(( void ));int main (argc, argv)int argc;char *argv[];{	int nr_routes, i;	nwio_route_t route;	int argind;	char *ip_dev;	int ip_fd;	int result;	prog_name= argv[0];	ip_dev= NULL;	for (argind= 1; argind < argc; argind++)	{		if (!strcmp(argv[argind], "-?"))			usage();		if (!strcmp(argv[argind], "-i"))		{			if (ip_dev)				usage();			argind++;			if (argind >= argc)				usage();			ip_dev= argv[argind];			continue;		}		usage();	}	if (!ip_dev)	{		ip_dev= getenv("IP_DEVICE");	}	if (!ip_dev)		ip_dev= IP_DEVICE;			ip_fd= open(ip_dev, O_RDWR);	if (ip_fd == -1)	{		fprintf(stderr, "%s: unable to open %s: %s\n", prog_name,			ip_dev, strerror(errno));		exit(1);	}	route.nwr_ent_no= 0;	result= ioctl(ip_fd, NWIOIPGROUTE, &route);	if (result == -1)	{		fprintf(stderr, "%s: unable to NWIOIPGROUTE: %s\n",			argv[0], strerror(errno));		exit(1);	}	nr_routes= route.nwr_ent_count;	print_route(&route);	for (i= 1; i<nr_routes; i++)	{		route.nwr_ent_no= i;		result= ioctl(ip_fd, NWIOIPGROUTE, &route);		if (result == -1)		{			fprintf(stderr, "%s: unable to NWIOIPGROUTE: %s\n",				argv[0], strerror(errno));			exit(1);		}		print_route(&route);	}	exit(0);}void print_route(route)nwio_route_t *route;{	if (!(route->nwr_flags & NWRF_INUSE))		return;	printf("%d ", route->nwr_ent_no);	printf("DEST= %s, ", inet_ntoa(route->nwr_dest));	printf("NETMASK= %s, ", inet_ntoa(route->nwr_netmask));	printf("GATEWAY= %s, ", inet_ntoa(route->nwr_gateway));	printf("dist= %d ", route->nwr_dist);	printf("pref= %d", route->nwr_pref);	if (route->nwr_flags & NWRF_FIXED)		printf(" fixed");	printf("\n");}void usage(){	fprintf(stderr, "USAGE: %s [ -i <ip-device> ]\n", prog_name);	exit(1);}

⌨️ 快捷键说明

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