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

📄 tee.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
/* * tee-- pipe fitting */#include <u.h>#include <libc.h>int	uflag;int	aflag;int	openf[100];char in[8192];int	intignore(void*, char*);voidmain(int argc, char **argv){	int i;	int r, n;	ARGBEGIN {	case 'a':		aflag++;		break;	case 'i':		atnotify(intignore, 1);		break;	case 'u':		uflag++;		/* uflag is ignored and undocumented; it's a relic from Unix */		break;	default:		fprint(2, "usage: tee [-ai] [file ...]\n");		exits("usage");	} ARGEND	USED(argc);	n = 0;	while(*argv) {		if(aflag) {			openf[n] = open(argv[0], OWRITE);			if(openf[n] < 0)				openf[n] = create(argv[0], OWRITE, 0666);			seek(openf[n], 0L, 2);		} else			openf[n] = create(argv[0], OWRITE, 0666);		if(openf[n] < 0) {			fprint(2, "tee: cannot open %s: %r\n", argv[0]);		} else			n++;		argv++;	}	openf[n++] = 1;	for(;;) {		r = read(0, in, sizeof in);		if(r <= 0)			exits(nil);		for(i=0; i<n; i++)			write(openf[i], in, r);	}}intintignore(void *a, char *msg){	USED(a);	if(strcmp(msg, "interrupt") == 0)		return 1;	return 0;}

⌨️ 快捷键说明

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