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

📄 who.c

📁 unix v7是最后一个广泛发布的研究型UNIX版本
💻 C
字号:
/* * who */#include <stdio.h>#include <utmp.h>#include <pwd.h>struct utmp utmp;struct passwd *pw;struct passwd *getpwuid();char *ttyname(), *rindex(), *ctime(), *strcpy(), *index();main(argc, argv)char **argv;{	register char *tp, *s;	register FILE *fi;	s = "/etc/utmp";	if(argc == 2)		s = argv[1];	if (argc==3) {		tp = ttyname(0);		if (tp)			tp = index(tp+1, '/') + 1;		else {	/* no tty - use best guess from passwd file */			pw = getpwuid(getuid());			strcpy(utmp.ut_name, pw?pw->pw_name: "?");			strcpy(utmp.ut_line, "tty??");			time(&utmp.ut_time);			putline();			exit(0);		}	}	if ((fi = fopen(s, "r")) == NULL) {		puts("who: cannot open utmp");		exit(1);	}	while (fread((char *)&utmp, sizeof(utmp), 1, fi) == 1) {		if(argc==3) {			if (strcmp(utmp.ut_line, tp))				continue;#ifdef interdata			printf("(Interdata) ");#endif			putline();			exit(0);		}		if(utmp.ut_name[0] == '\0' && argc==1)			continue;		putline();	}}putline(){	register char *cbuf;	printf("%-8.8s %-8.8s", utmp.ut_name, utmp.ut_line);	cbuf = ctime(&utmp.ut_time);	printf("%.12s\n", cbuf+4);}

⌨️ 快捷键说明

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