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

📄 wall.c

📁 Version 6 Unix 核心源代码 Version 6 Unix 核心源代码
💻 C
字号:
char	mesg[3000];int	msize;struct{	char	name[8];	char	tty[2];	int	time[2];	int	junk;} utmp[50];main(argc, argv)char *argv[];{	register i, *p;	int f;	f = open("/etc/utmp", 0);	if(f < 0) {		printf("utmp?\n");		exit();	}	read(f, utmp, sizeof utmp);	close(f);	f = 0;	if(argc >= 2) {		f = open(argv[1], 0);		if(f < 0) {			printf("%s?\n", argv[1]);			exit();		}	}	while((i = read(f, &mesg[msize], sizeof mesg - msize)) > 0)		msize =+ i;	close(f);	for(i=0; i<sizeof utmp/sizeof utmp[0]; i++) {		p = &utmp[i];		if(p->tty[0] == 0)			continue;		sleep(1);		sendmes(p->tty[0]);	}}sendmes(tty){	register i;	register char *s;	i = fork();	if(i == -1) {		printf("try again\n");		return;	}	if(i)		return;	s = "/dev/ttyx";	s[8] = tty;	i = open(s, 1);	if(i < 0) {		printf("cannot open tty%c\n", tty);		exit();	}	close(1);	dup(i);	printf("Broadcast Message ...\n\n");	write(1, mesg, msize);	exit();}

⌨️ 快捷键说明

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