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
|
|
|
*
|
2006-07-10 17:11:19 +05:30
|
|
|
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
|
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
|
|
|
|
2007-04-10 21:13:37 +05:30
|
|
|
// TODO: make it safe to call from NOFORK applets
|
|
|
|
// Currently, it can exit(0). Even if it is made to do longjmp trick
|
|
|
|
// (see sleep_and_die internals), zero cannot be passed thru this way!
|
|
|
|
|
2006-10-27 04:51:47 +05:30
|
|
|
void 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))
|
|
|
|
sleep_and_die();
|
2003-03-19 14:43:01 +05:30
|
|
|
exit(retval);
|
2001-03-17 04:17:14 +05:30
|
|
|
}
|