1*0e84a0ecSrtm #include "user.h" 2*0e84a0ecSrtm 3*0e84a0ecSrtm char buf[513]; 4*0e84a0ecSrtm 5*0e84a0ecSrtm int 6*0e84a0ecSrtm main(int argc, char *argv[]) 7*0e84a0ecSrtm { 8*0e84a0ecSrtm int fd, i, cc; 9*0e84a0ecSrtm 10*0e84a0ecSrtm if(argc < 2){ 11*0e84a0ecSrtm puts("Usage: cat files...\n"); 12*0e84a0ecSrtm exit(); 13*0e84a0ecSrtm } 14*0e84a0ecSrtm 15*0e84a0ecSrtm for(i = 1; i < argc; i++){ 16*0e84a0ecSrtm fd = open(argv[i], 0); 17*0e84a0ecSrtm if(fd < 0){ 18*0e84a0ecSrtm puts("cat: cannot open "); 19*0e84a0ecSrtm puts(argv[i]); 20*0e84a0ecSrtm puts("\n"); 21*0e84a0ecSrtm exit(); 22*0e84a0ecSrtm } 23*0e84a0ecSrtm while((cc = read(fd, buf, sizeof(buf) - 1)) > 0){ 24*0e84a0ecSrtm buf[cc] = '\0'; 25*0e84a0ecSrtm puts(buf); 26*0e84a0ecSrtm } 27*0e84a0ecSrtm if(cc < 0){ 28*0e84a0ecSrtm puts("cat: read error\n"); 29*0e84a0ecSrtm exit(); 30*0e84a0ecSrtm } 31*0e84a0ecSrtm close(fd); 32*0e84a0ecSrtm } 33*0e84a0ecSrtm 34*0e84a0ecSrtm exit(); 35*0e84a0ecSrtm } 36