diff options
author | JozanLeClerc <JozanLeClerc@noemail.net> | 2020-11-26 21:14:58 +0000 |
---|---|---|
committer | JozanLeClerc <JozanLeClerc@noemail.net> | 2020-11-26 21:14:58 +0000 |
commit | d1b60f8039ba8cabfd0513c090ac5308752f976d (patch) | |
tree | de6b619f7739ba7e01cc8d09335ade54dd864e1d /src/c_bsdsetsid.c | |
parent | I give up on this makeobjdir shit (diff) | |
download | bsdsetsid-d1b60f8039ba8cabfd0513c090ac5308752f976d.tar.gz bsdsetsid-d1b60f8039ba8cabfd0513c090ac5308752f976d.tar.bz2 bsdsetsid-d1b60f8039ba8cabfd0513c090ac5308752f976d.tar.xz bsdsetsid-d1b60f8039ba8cabfd0513c090ac5308752f976d.tar.zst bsdsetsid-d1b60f8039ba8cabfd0513c090ac5308752f976d.zip |
In progress
FossilOrigin-Name: 8619bf5f1bd28e85a71a5c79320974f7c44c7f4e
Diffstat (limited to 'src/c_bsdsetsid.c')
-rw-r--r-- | src/c_bsdsetsid.c | 50 |
1 files changed, 4 insertions, 46 deletions
diff --git a/src/c_bsdsetsid.c b/src/c_bsdsetsid.c index bd449ec..7d3a76d 100644 --- a/src/c_bsdsetsid.c +++ b/src/c_bsdsetsid.c @@ -39,7 +39,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * bsdsetsid: src/c_bsdsetsid.c - * Wed Nov 25 23:06:05 CET 2020 + * Thu Nov 26 22:12:37 CET 2020 * Joe * * This is the entrypoint of the program. @@ -52,15 +52,14 @@ #include <unistd.h> #include "c_bsdsetsid.h" +#include "c_fork.h" static char c_args (int argc, const char* argv[], - const char* envp[], bool_t* wopt) { - (void)envp; if (argc == 1) { dprintf( STDERR_FILENO, @@ -91,53 +90,12 @@ main const char* argv[], const char* envp[]) { - int sets_ret; - int exec_ret; - pid_t pid; bool_t wopt; wopt = FALSE; - if (c_args(argc, argv, envp, &wopt) != 0) { + if (c_args(argc, argv, &wopt) != 0) { return (EXIT_FAILURE); } - pid = fork(); - if (pid == -1) { - dprintf( - STDERR_FILENO, - "%s: fork: %s\n", - C_PROGNAME, - strerror(errno) - ); - return (EXIT_FAILURE); - } - else if (pid == 0) { - sets_ret = setsid(); - if (sets_ret == -1) { - dprintf( - STDERR_FILENO, - "%s: setsid: %s\n", - C_PROGNAME, - strerror(errno) - ); - return (EXIT_FAILURE); - } - exec_ret = execve( - argv[1 + wopt], - (char* const*)argv + (1 + wopt), - (char* const*)envp - ); - if (exec_ret == -1) { - dprintf( - STDERR_FILENO, - "%s: execve: %s\n", - C_PROGNAME, - strerror(errno) - ); - return (EXIT_FAILURE); - } - } - else { - return (EXIT_SUCCESS); - } + c_fork(argv, envp, wopt); return (EXIT_SUCCESS); } |