aboutsummaryrefslogtreecommitdiff
path: root/libbb/safe_write.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/safe_write.c')
-rw-r--r--libbb/safe_write.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/libbb/safe_write.c b/libbb/safe_write.c
new file mode 100644
index 000000000..c81f1247f
--- /dev/null
+++ b/libbb/safe_write.c
@@ -0,0 +1,26 @@
1/* vi: set sw=4 ts=4: */
2/*
3 * Utility routines.
4 *
5 * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
6 *
7 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
8 */
9
10#include <stdio.h>
11#include <errno.h>
12#include <unistd.h>
13#include "libbb.h"
14
15
16
17ssize_t safe_write(int fd, const void *buf, size_t count)
18{
19 ssize_t n;
20
21 do {
22 n = write(fd, buf, count);
23 } while (n < 0 && errno == EINTR);
24
25 return n;
26}