From dd961fca7f98e91e6dfe1cd6e4a22d2a0215587d Mon Sep 17 00:00:00 2001 From: savalet Date: Wed, 21 May 2025 00:40:21 +0200 Subject: [PATCH] Add bg --- src/builtins.h | 1 + src/builtins/bg.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 src/builtins/bg.c diff --git a/src/builtins.h b/src/builtins.h index a52c1b6..c6db16e 100644 --- a/src/builtins.h +++ b/src/builtins.h @@ -56,4 +56,5 @@ int builtins_echo(ef_t *ef, char **args); int builtins_astprint(ef_t *, char **args); int builtins_termname(ef_t *ef, char **); int builtins_fg(ef_t *ef, char **); +int builtins_bg(ef_t *ef, char **); #endif /* BUILTIND_H */ diff --git a/src/builtins/bg.c b/src/builtins/bg.c new file mode 100644 index 0000000..994ec72 --- /dev/null +++ b/src/builtins/bg.c @@ -0,0 +1,27 @@ +/* +** EPITECH PROJECT, 2025 +** __ +** File description: +** _ +*/ + + +#include +#include +#include +#include + +#include "common.h" +#include "exec.h" + +int builtins_bg(ef_t *ef, char **) +{ + int last_job_index = ef->exec_ctx->jobs.sz - 1; + + if (!ef->exec_ctx->isatty) { + fprintf(stderr, "No job control in this shell.\n"); + return RETURN_FAILURE; + } + kill(-ef->exec_ctx->jobs.jobs[last_job_index].pgid, SIGCONT); + return RETURN_SUCCESS; +}