Manuel Novoa III | cad5364 | 2003-03-19 09:13:01 +0000 | [diff] [blame] | 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 | * |
Denys Vlasenko | 0ef64bd | 2010-08-16 20:14:46 +0200 | [diff] [blame] | 7 | * Licensed under GPLv2 or later, see file LICENSE in this source tree. |
Manuel Novoa III | cad5364 | 2003-03-19 09:13:01 +0000 | [diff] [blame] | 8 | */ |
Denys Vlasenko | ebe6d9d | 2017-10-05 14:40:24 +0200 | [diff] [blame] | 9 | #include "libbb.h" |
Manuel Novoa III | cad5364 | 2003-03-19 09:13:01 +0000 | [diff] [blame] | 10 | |
| 11 | /* Attempt to fflush(stdout), and exit with an error code if stdout is |
| 12 | * in an error state. |
| 13 | */ |
Denis Vlasenko | defc1ea | 2008-06-27 02:52:20 +0000 | [diff] [blame] | 14 | void FAST_FUNC fflush_stdout_and_exit(int retval) |
Manuel Novoa III | cad5364 | 2003-03-19 09:13:01 +0000 | [diff] [blame] | 15 | { |
Denis Vlasenko | 9b1381f | 2007-01-03 02:56:00 +0000 | [diff] [blame] | 16 | if (fflush(stdout)) |
James Byrne | 6937487 | 2019-07-02 11:35:03 +0200 | [diff] [blame] | 17 | bb_simple_perror_msg_and_die(bb_msg_standard_output); |
Denys Vlasenko | dfd8aaf | 2022-01-04 23:36:16 +0100 | [diff] [blame] | 18 | xfunc_error_retval = retval; |
Denys Vlasenko | 550bf5b | 2015-10-09 16:42:57 +0200 | [diff] [blame] | 19 | /* In case we are in NOFORK applet. Do not exit() directly, |
| 20 | * but use xfunc_die() */ |
| 21 | xfunc_die(); |
Manuel Novoa III | cad5364 | 2003-03-19 09:13:01 +0000 | [diff] [blame] | 22 | } |
Denys Vlasenko | 31f45c1 | 2022-01-04 23:31:58 +0100 | [diff] [blame] | 23 | |
| 24 | void FAST_FUNC fflush_stdout_and_exit_SUCCESS(void) |
| 25 | { |
| 26 | fflush_stdout_and_exit(EXIT_SUCCESS); |
| 27 | } |