xref: /xv6-public/cat.c (revision 0e84a0ec)
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