blob: 5a13ebcf8efe0808f6e52e8616c79b39ccd4642d [file] [log] [blame]
Manuel Novoa III cad53642003-03-19 09:13:01 +00001/* 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 Vlasenko0ef64bd2010-08-16 20:14:46 +02007 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
Manuel Novoa III cad53642003-03-19 09:13:01 +00008 */
Denys Vlasenkoebe6d9d2017-10-05 14:40:24 +02009#include "libbb.h"
Manuel Novoa III cad53642003-03-19 09:13:01 +000010
11/* Attempt to fflush(stdout), and exit with an error code if stdout is
12 * in an error state.
13 */
Denis Vlasenkodefc1ea2008-06-27 02:52:20 +000014void FAST_FUNC fflush_stdout_and_exit(int retval)
Manuel Novoa III cad53642003-03-19 09:13:01 +000015{
Denys Vlasenko550bf5b2015-10-09 16:42:57 +020016 xfunc_error_retval = retval;
Denis Vlasenko9b1381f2007-01-03 02:56:00 +000017 if (fflush(stdout))
James Byrne69374872019-07-02 11:35:03 +020018 bb_simple_perror_msg_and_die(bb_msg_standard_output);
Denys Vlasenko550bf5b2015-10-09 16:42:57 +020019 /* In case we are in NOFORK applet. Do not exit() directly,
20 * but use xfunc_die() */
21 xfunc_die();
Manuel Novoa III cad53642003-03-19 09:13:01 +000022}
Denys Vlasenko31f45c12022-01-04 23:31:58 +010023
24void FAST_FUNC fflush_stdout_and_exit_SUCCESS(void)
25{
26 fflush_stdout_and_exit(EXIT_SUCCESS);
27}