From af5ee34c353ea2868a4b04b227bc1b511e1ac42b Mon Sep 17 00:00:00 2001 From: Sylvain Munaut Date: Fri, 17 Sep 2010 14:38:17 +0200 Subject: [PATCH] Make sure we don't user std{err,in,out} if they don't exist. This is required for target build in libosmocore Signed-off-by: Sylvain Munaut --- src/logging.c | 9 +++++---- src/process.c | 3 +++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/logging.c b/src/logging.c index 5be4e58ed..b3b5cb69e 100644 --- a/src/logging.c +++ b/src/logging.c @@ -294,14 +294,11 @@ void log_set_category_filter(struct log_target *target, int category, target->categories[category].loglevel = level; } -/* since C89/C99 says stderr is a macro, we can safely do this! */ -#ifdef stderr static void _file_output(struct log_target *target, const char *log) { fprintf(target->tgt_file.out, "%s", log); fflush(target->tgt_file.out); } -#endif struct log_target *log_target_create(void) { @@ -374,8 +371,12 @@ void log_target_destroy(struct log_target *target) log_del_target(target); if (target->output == &_file_output) { +/* since C89/C99 says stderr is a macro, we can safely do this! */ +#ifdef stderr /* don't close stderr */ - if (target->tgt_file.out != stderr) { + if (target->tgt_file.out != stderr) +#endif + { fclose(target->tgt_file.out); target->tgt_file.out = NULL; } diff --git a/src/process.c b/src/process.c index ab4b37e34..180efa517 100644 --- a/src/process.c +++ b/src/process.c @@ -63,9 +63,12 @@ int osmo_daemonize(void) return rc; /* Redirect stdio to /dev/null */ +/* since C89/C99 says stderr is a macro, we can safely do this! */ +#ifdef stderr freopen("/dev/null", "r", stdin); freopen("/dev/null", "w", stdout); freopen("/dev/null", "w", stderr); +#endif return 0; }