Linux
Application Development |
Michael K. Johnson Erik W. Troan |
/* cat.c -- simple version of cat */ #include <stdio.h> #include <unistd.h> /* While there is data on standard in (fd 0), copy it to standard out (fd 1). Exit once no more data is available. */ int main(void) { char buf[1024]; int len; /* len will be >= 0 while data is available, and read() is successful */ while ((len = read(STDIN_FILENO, buf, sizeof(buf))) > 0) { if (write(1, buf, len) != len) { perror("write"); return 1; } } /* len was <= 0; If len = 0, no more data is available. Otherwise, an error occurred. */ if (len < 0) { perror("read"); return 1; } return 0; }