1*32745Sbostic static char *sccsid = "@(#)rev.c 4.2 (Berkeley) 12/02/87"; 21079Sbill #include <stdio.h> 31079Sbill 41079Sbill /* reverse lines of a file */ 51079Sbill 61079Sbill #define N 256 71079Sbill char line[N]; 81079Sbill FILE *input; 91079Sbill 101079Sbill main(argc,argv) 111079Sbill char **argv; 121079Sbill { 131079Sbill register i,c; 141079Sbill input = stdin; 151079Sbill do { 161079Sbill if(argc>1) { 171079Sbill if((input=fopen(argv[1],"r"))==NULL) { 181079Sbill fprintf(stderr,"rev: cannot open %s\n", 191079Sbill argv[1]); 201079Sbill exit(1); 211079Sbill } 221079Sbill } 231079Sbill for(;;){ 241079Sbill for(i=0;i<N;i++) { 251079Sbill line[i] = c = getc(input); 261079Sbill switch(c) { 271079Sbill case EOF: 281079Sbill goto eof; 291079Sbill default: 301079Sbill continue; 311079Sbill case '\n': 321079Sbill break; 331079Sbill } 341079Sbill break; 351079Sbill } 361079Sbill while(--i>=0) 371079Sbill putc(line[i],stdout); 381079Sbill putc('\n',stdout); 391079Sbill } 401079Sbill eof: 411079Sbill fclose(input); 421079Sbill argc--; 431079Sbill argv++; 441079Sbill } while(argc>1); 45*32745Sbostic exit(0); 461079Sbill } 47