18b58e810Skaashoek #include "types.h" 28b58e810Skaashoek #include "stat.h" 30e84a0ecSrtm #include "user.h" 40e84a0ecSrtm 5*1b789e1dSrsc char buf[512]; 60e84a0ecSrtm 78b58e810Skaashoek void 88b58e810Skaashoek rfile(int fd) 90e84a0ecSrtm { 10*1b789e1dSrsc int n; 110e84a0ecSrtm 12*1b789e1dSrsc while((n = read(fd, buf, sizeof(buf))) > 0) 13*1b789e1dSrsc write(1, buf, n); 14*1b789e1dSrsc if(n < 0){ 15*1b789e1dSrsc printf(1, "cat: read error\n"); 160e84a0ecSrtm exit(); 170e84a0ecSrtm } 188b58e810Skaashoek } 198b58e810Skaashoek 208b58e810Skaashoek int 218b58e810Skaashoek main(int argc, char *argv[]) 228b58e810Skaashoek { 238b58e810Skaashoek int fd, i; 248b58e810Skaashoek 258b58e810Skaashoek if(argc <= 1) { 268b58e810Skaashoek rfile(0); 27*1b789e1dSrsc exit(); 28*1b789e1dSrsc } 29*1b789e1dSrsc 308b58e810Skaashoek for(i = 1; i < argc; i++){ 31*1b789e1dSrsc if((fd = open(argv[i], 0)) < 0){ 32*1b789e1dSrsc printf(1, "cat: cannot open %s\n", argv[i]); 338b58e810Skaashoek exit(); 348b58e810Skaashoek } 358b58e810Skaashoek rfile(fd); 360e84a0ecSrtm close(fd); 370e84a0ecSrtm } 380e84a0ecSrtm exit(); 390e84a0ecSrtm } 40