cat.c 512 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include "types.h"
  2. #include "stat.h"
  3. #include "user.h"
  4. char buf[512];
  5. void
  6. cat(int fd)
  7. {
  8. int n;
  9. while((n = read(fd, buf, sizeof(buf))) > 0)
  10. write(1, buf, n);
  11. if(n < 0){
  12. printf(1, "cat: read error\n");
  13. exit();
  14. }
  15. }
  16. int
  17. main(int argc, char *argv[])
  18. {
  19. int fd, i;
  20. if(argc <= 1){
  21. cat(0);
  22. exit();
  23. }
  24. for(i = 1; i < argc; i++){
  25. if((fd = open(argv[i], 0)) < 0){
  26. printf(1, "cat: cannot open %s\n", argv[i]);
  27. exit();
  28. }
  29. cat(fd);
  30. close(fd);
  31. }
  32. exit();
  33. }