📄 cmp.c
字号:
int ibuf1[259];int ibuf2[259];int eflg;int lflg 1;int line[2] {0, 1};int chr[2] { -1, -1};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 ) ibuf1[0] = dup(0); else if(fopen(arg, ibuf1) < 0) goto barg; arg = argv[2]; if(fopen(arg, ibuf2) < 0) goto barg;loop: if (++chr[1]==0) chr[0]++; c1 = getc(ibuf1); c2 = getc(ibuf2); if(c1 == c2) { if (c1 == '\n') if (++line[1]==0) line[0]++; if(c1 == -1) { if(eflg) exit(1); exit(0); } goto loop; } if(lflg == 0) exit(1); if(c1 == -1) { arg = argv[1]; goto earg; } if(c2 == -1) goto earg; if(lflg == 1) { printf("%s %s differ: char %s, line ", argv[1], arg, locv(chr[0], chr[1])); printf("%s\n", locv(line[0], line[1])); exit(1); } eflg = 1; printf("%5s %3o %3o\n", locv(chr[0], chr[1]), c1, c2); goto loop;narg: printf("arg count\n"); exit(2);barg: printf("cannot open %s\n", arg); exit(2);earg: printf("EOF on %s\n", arg); exit(1);}putchar(c){ write(1, &c, 1);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -