summaryrefslogtreecommitdiff
path: root/cat.c
diff options
context:
space:
mode:
Diffstat (limited to 'cat.c')
-rw-r--r--cat.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/cat.c b/cat.c
new file mode 100644
index 0000000..8154ae2
--- /dev/null
+++ b/cat.c
@@ -0,0 +1,35 @@
+#include "user.h"
+
+char buf[513];
+
+int
+main(int argc, char *argv[])
+{
+ int fd, i, cc;
+
+ if(argc < 2){
+ puts("Usage: cat files...\n");
+ exit();
+ }
+
+ for(i = 1; i < argc; i++){
+ fd = open(argv[i], 0);
+ if(fd < 0){
+ puts("cat: cannot open ");
+ puts(argv[i]);
+ puts("\n");
+ exit();
+ }
+ while((cc = read(fd, buf, sizeof(buf) - 1)) > 0){
+ buf[cc] = '\0';
+ puts(buf);
+ }
+ if(cc < 0){
+ puts("cat: read error\n");
+ exit();
+ }
+ close(fd);
+ }
+
+ exit();
+}