2001-03-17 04:17:14 +05:30
|
|
|
/* vi: set sw=4 ts=4: */
|
|
|
|
/*
|
2003-03-19 14:43:01 +05:30
|
|
|
* fflush_stdout_and_exit implementation for busybox
|
2001-03-17 04:17:14 +05:30
|
|
|
*
|
2003-03-19 14:43:01 +05:30
|
|
|
* Copyright (C) 2003 Manuel Novoa III <mjn3@codepoet.org>
|
2001-03-17 04:17:14 +05:30
|
|
|
*
|
2010-08-16 23:44:46 +05:30
|
|
|
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
|
2001-03-17 04:17:14 +05:30
|
|
|
*/
|
|
|
|
|
2003-03-19 14:43:01 +05:30
|
|
|
/* Attempt to fflush(stdout), and exit with an error code if stdout is
|
|
|
|
* in an error state.
|
2001-03-17 04:17:14 +05:30
|
|
|
*/
|
|
|
|
|
2006-10-27 04:51:47 +05:30
|
|
|
#include "libbb.h"
|
2001-03-17 04:17:14 +05:30
|
|
|
|
2008-06-27 08:22:20 +05:30
|
|
|
void FAST_FUNC fflush_stdout_and_exit(int retval)
|
2003-03-19 14:43:01 +05:30
|
|
|
{
|
2007-01-03 08:26:00 +05:30
|
|
|
if (fflush(stdout))
|
2007-08-13 19:40:24 +05:30
|
|
|
bb_perror_msg_and_die(bb_msg_standard_output);
|
2007-04-11 03:08:30 +05:30
|
|
|
|
2007-04-11 04:33:30 +05:30
|
|
|
if (ENABLE_FEATURE_PREFER_APPLETS && die_sleep < 0) {
|
2007-04-11 03:08:30 +05:30
|
|
|
/* We are in NOFORK applet. Do not exit() directly,
|
|
|
|
* but use xfunc_die() */
|
|
|
|
xfunc_error_retval = retval;
|
|
|
|
xfunc_die();
|
|
|
|
}
|
|
|
|
|
2003-03-19 14:43:01 +05:30
|
|
|
exit(retval);
|
2001-03-17 04:17:14 +05:30
|
|
|
}
|