1234567891011121314151617181920212223242526272829 |
- /* vi: set sw=4 ts=4: */
- /*
- * Utility routines.
- *
- * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
- *
- * Licensed under GPLv2 or later, see file LICENSE in this source tree.
- */
- #include "libbb.h"
- ssize_t FAST_FUNC safe_write(int fd, const void *buf, size_t count)
- {
- ssize_t n;
- for (;;) {
- n = write(fd, buf, count);
- if (n >= 0 || errno != EINTR)
- break;
- /* Some callers set errno=0, are upset when they see EINTR.
- * Returning EINTR is wrong since we retry write(),
- * the "error" was transient.
- */
- errno = 0;
- /* repeat the write() */
- }
- return n;
- }
|