hogports.c

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

C
72
字号
#include <u.h>#include <libc.h>voidhogport(char *proto, int port){	char buf[256];	char dir[40];	snprint(buf, sizeof(buf), "%s!%d", proto, port);	if(announce(buf, dir) < 0)		fprint(2, "%s: can't hog %s\n", argv0, buf);}voidhogrange(char *str){	char *er, *sr;	int start, end;	sr = strrchr(str, '!');	if(sr == nil)		sysfatal("bad range: %s", str);	*sr++ = 0;	er = strchr(sr, '-');	if(er == nil)		er = sr;	else		er++;	start = atoi(sr);	end = atoi(er);	if(end < start)		sysfatal("bad range: %s", sr);	for(; start <= end; start++)		hogport(str, start);}voidmain(int argc, char **argv){	int i;	ARGBEGIN{	}ARGEND;	if(argc == 0){		fprint(2, "usage: %s portrange\n", argv0);		exits("usage");	}	switch(rfork(RFREND|RFNOTEG|RFFDG|RFPROC|RFNAMEG)){	case 0:		close(0);		close(1);		break;	case -1:		abort(); /* "fork failed\n" */;	default:		_exits(0);	}	for(i = 0; i < argc; i++)		hogrange(argv[i]);	close(2);	for(;;)		sleep(10000);}

⌨️ 快捷键说明

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