libbb/xwrite: print errno on "short write" errors
Lauri Kasanen: :: Over at TinyCore, we receive a huge number of questions of the type "I :: got "short write", what does it mean?". Mostly for the rpi port and when :: using bb wget. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
76787a7e02
commit
9fd61be191
@ -235,8 +235,16 @@ void FAST_FUNC xwrite(int fd, const void *buf, size_t count)
|
||||
{
|
||||
if (count) {
|
||||
ssize_t size = full_write(fd, buf, count);
|
||||
if ((size_t)size != count)
|
||||
bb_error_msg_and_die("short write");
|
||||
if ((size_t)size != count) {
|
||||
/*
|
||||
* Two cases: write error immediately;
|
||||
* or some writes succeeded, then we hit an error.
|
||||
* In either case, errno is set.
|
||||
*/
|
||||
bb_perror_msg_and_die(
|
||||
size >= 0 ? "short write" : "write error"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
void FAST_FUNC xwrite_str(int fd, const char *str)
|
||||
|
Loading…
Reference in New Issue
Block a user