From 4b0b7ca249bfa4ecc099c2ca56527eb91776f198 Mon Sep 17 00:00:00 2001 From: ticktock35 Date: Sun, 14 Dec 2008 23:25:08 -0500 Subject: opkg: re-arrange source code into sub-directories git-svn-id: http://opkg.googlecode.com/svn/trunk@33 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358 --- (limited to 'xsystem.c') diff --git a/xsystem.c b/xsystem.c deleted file mode 100644 index 06d6ae4..0000000 --- a/xsystem.c +++ /dev/null @@ -1,64 +0,0 @@ -/* xsystem.c - system(3) with error messages - - Carl D. Worth - - Copyright (C) 2001 University of Southern California - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2, or (at - your option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. -*/ - -#include "opkg.h" -#include - -#include "xsystem.h" - -/* XXX: FEATURE: I shouldn't actually use system(3) at all. I don't - really need the /bin/sh invocation which takes resources and - introduces security problems. I should switch all of this to a sort - of execl() or execv() interface/implementation. -*/ - -/* Like system(3), but with error messages printed if the fork fails - or if the child process dies due to an uncaught signal. Also, the - return value is a bit simpler: - - -1 if there was any problem - Otherwise, the 8-bit return value of the program ala WEXITSTATUS - as defined in . -*/ -int xsystem(const char *cmd) -{ - int err; - - err = system(cmd); - - if (err == -1) { - fprintf(stderr, "%s: ERROR: fork failed before execution: `%s'\n", - __FUNCTION__, cmd); - return -1; - } - - if (WIFSIGNALED(err)) { - fprintf(stderr, "%s: ERROR: Child process died due to signal %d: `%s'\n", - __FUNCTION__, WTERMSIG(err), cmd); - return -1; - } - - if (WIFEXITED(err)) { - /* Normal child exit */ - return WEXITSTATUS(err); - } - - fprintf(stderr, "%s: ERROR: Received unintelligible return value from system: %d", - __FUNCTION__, err); - return -1; -} - -- cgit v0.9.1