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