blob: 41a14d3d54e2cf8084373a13f12184fa944ec982
1 | /* vi: set sw=4 ts=4: */ |
2 | /* |
3 | * fflush_stdout_and_exit implementation for busybox |
4 | * |
5 | * Copyright (C) 2003 Manuel Novoa III <mjn3@codepoet.org> |
6 | * |
7 | * Licensed under GPLv2 or later, see file LICENSE in this source tree. |
8 | */ |
9 | |
10 | /* Attempt to fflush(stdout), and exit with an error code if stdout is |
11 | * in an error state. |
12 | */ |
13 | |
14 | #include "libbb.h" |
15 | |
16 | void FAST_FUNC fflush_stdout_and_exit(int retval) |
17 | { |
18 | if (fflush(stdout)) |
19 | bb_perror_msg_and_die("%s", bb_msg_standard_output); |
20 | |
21 | if (ENABLE_FEATURE_PREFER_APPLETS && die_sleep < 0) { |
22 | /* We are in NOFORK applet. Do not exit() directly, |
23 | * but use xfunc_die() */ |
24 | xfunc_error_retval = retval; |
25 | xfunc_die(); |
26 | } |
27 | |
28 | exit(retval); |
29 | } |
30 |