projects
/
apps
/
pfixtools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Implement buffer_write.
[apps/pfixtools.git]
/
buffer.c
diff --git
a/buffer.c
b/buffer.c
index
bdd5715
..
4e41b3c
100644
(file)
--- a/
buffer.c
+++ b/
buffer.c
@@
-33,6
+33,7
@@
* Copyright © 2006-2007 Pierre Habouzit
*/
* Copyright © 2006-2007 Pierre Habouzit
*/
+#include <errno.h>
#include <stdio.h>
#include <unistd.h>
#include <stdio.h>
#include <unistd.h>
@@
-80,3
+81,13
@@
ssize_t buffer_read(buffer_t *buf, int fd, ssize_t count)
buffer_extend(buf, res);
return res;
}
buffer_extend(buf, res);
return res;
}
+
+ssize_t buffer_write(buffer_t *buf, int fd)
+{
+ ssize_t res = write(fd, buf->data, buf->len);
+ if (res < 0) {
+ return errno == EINTR || errno == EAGAIN ? 0 : -1;
+ }
+ buffer_consume(buf, res);
+ return res;
+}