18b58e810Skaashoek #include "types.h"
28b58e810Skaashoek #include "stat.h"
30e84a0ecSrtm #include "user.h"
40e84a0ecSrtm
51b789e1dSrsc char buf[512];
60e84a0ecSrtm
78b58e810Skaashoek void
cat(int fd)83341e30fSrsc cat(int fd)
90e84a0ecSrtm {
101b789e1dSrsc int n;
110e84a0ecSrtm
12*89826f41SFrans Kaashoek while((n = read(fd, buf, sizeof(buf))) > 0) {
13*89826f41SFrans Kaashoek if (write(1, buf, n) != n) {
14*89826f41SFrans Kaashoek printf(1, "cat: write error\n");
15*89826f41SFrans Kaashoek exit();
16*89826f41SFrans Kaashoek }
17*89826f41SFrans Kaashoek }
181b789e1dSrsc if(n < 0){
191b789e1dSrsc printf(1, "cat: read error\n");
200e84a0ecSrtm exit();
210e84a0ecSrtm }
228b58e810Skaashoek }
238b58e810Skaashoek
248b58e810Skaashoek int
main(int argc,char * argv[])258b58e810Skaashoek main(int argc, char *argv[])
268b58e810Skaashoek {
278b58e810Skaashoek int fd, i;
288b58e810Skaashoek
298b58e810Skaashoek if(argc <= 1){
303341e30fSrsc cat(0);
311b789e1dSrsc exit();
321b789e1dSrsc }
331b789e1dSrsc
348b58e810Skaashoek for(i = 1; i < argc; i++){
351b789e1dSrsc if((fd = open(argv[i], 0)) < 0){
361b789e1dSrsc printf(1, "cat: cannot open %s\n", argv[i]);
378b58e810Skaashoek exit();
388b58e810Skaashoek }
393341e30fSrsc cat(fd);
400e84a0ecSrtm close(fd);
410e84a0ecSrtm }
420e84a0ecSrtm exit();
430e84a0ecSrtm }
44