summaryrefslogtreecommitdiff
path: root/inotail.c
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2007-05-20 21:57:03 +0200
committerTobias Klauser <tklauser@xenon.tklauser.home>2007-05-20 21:57:03 +0200
commit97fc6ccc502804ca5f6bd4e069ed4b8a12cc1bac (patch)
treea8d7f8a7c97d42573777b09d510fe5a9e06f35ac /inotail.c
parent07f00e65f41f6b450798628ec194b7f95cea0ade (diff)
inotail.c: Some more error checking in tail_pipe()
Taken from a patch by Folkert van Heusden
Diffstat (limited to 'inotail.c')
-rw-r--r--inotail.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/inotail.c b/inotail.c
index 6b7af47..79bad64 100644
--- a/inotail.c
+++ b/inotail.c
@@ -221,8 +221,13 @@ static ssize_t tail_pipe(struct file_struct *f)
write_header(f->name);
/* We will just tail everything here */
- while ((rc = read(f->fd, buf, BUFFER_SIZE)) > 0)
- write(STDOUT_FILENO, buf, (size_t) rc);
+ while ((rc = read(f->fd, buf, BUFFER_SIZE)) > 0) {
+ if (write(STDOUT_FILENO, buf, (size_t) rc)) {
+ /* e.g. when writing to a pipe which gets closed */
+ fprintf(stderr, "Error: Could not write to stdout: %s\n", strerror(errno));
+ return -1;
+ }
+ }
return rc;
}