![]() |
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;
}