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

📄 cmp.c

📁 unix v7是最后一个广泛发布的研究型UNIX版本
💻 C
字号:
#include <stdio.h>#include <ctype.h>FILE	*file1,*file2;int	eflg;int	lflg	= 1;long	line	= 1;long	chr	= 0;long	skip1;long	skip2;long	otoi();main(argc, argv)char **argv;{	register c1, c2;	char *arg;	if(argc < 3)		goto narg;	arg = argv[1];	if(arg[0] == '-' && arg[1] == 's') {		lflg--;		argv++;		argc--;	}	arg = argv[1];	if(arg[0] == '-' && arg[1] == 'l') {		lflg++;		argv++;		argc--;	}	if(argc < 3)		goto narg;	arg = argv[1];	if( arg[0]=='-' && arg[1]==0 )		file1 = stdin;	else if((file1 = fopen(arg, "r")) == NULL)		goto barg;	arg = argv[2];	if((file2 = fopen(arg, "r")) == NULL)		goto barg;	if (argc>3)		skip1 = otoi(argv[3]);	if (argc>4)		skip2 = otoi(argv[4]);	while (skip1) {		if ((c1 = getc(file1)) == EOF) {			arg = argv[1];			goto earg;		}		skip1--;	}	while (skip2) {		if ((c2 = getc(file2)) == EOF) {			arg = argv[2];			goto earg;		}		skip2--;	}loop:	chr++;	c1 = getc(file1);	c2 = getc(file2);	if(c1 == c2) {		if (c1 == '\n')			line++;		if(c1 == EOF) {			if(eflg)				exit(1);			exit(0);		}		goto loop;	}	if(lflg == 0)		exit(1);	if(c1 == EOF) {		arg = argv[1];		goto earg;	}	if(c2 == EOF)		goto earg;	if(lflg == 1) {		printf("%s %s differ: char %ld, line %ld\n", argv[1], arg,			chr, line);		exit(1);	}	eflg = 1;	printf("%6ld %3o %3o\n", chr, c1, c2);	goto loop;narg:	printf("cmp: arg count\n");	exit(2);barg:	if (lflg)	printf("cmp: cannot open %s\n", arg);	exit(2);earg:	printf("cmp: EOF on %s\n", arg);	exit(1);}long otoi(s)char *s;{	long v;	int base;	v = 0;	base = 10;	if (*s == '0')		base = 8;	while(isdigit(*s))		v = v*base + *s++ - '0';	return(v);}

⌨️ 快捷键说明

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