diff options
Diffstat (limited to 'redes/exec.c')
| -rw-r--r-- | redes/exec.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/redes/exec.c b/redes/exec.c index 964b0a0..8fb42b8 100644 --- a/redes/exec.c +++ b/redes/exec.c @@ -1,13 +1,17 @@ #include <stdio.h> #include <unistd.h> #include <fcntl.h> +#include <signal.h> +#include <sys/wait.h> #include "syntax.h" void execute_cmd(ExecutableCommand cmd, int* pgid) { - printf("ok\n"); + printf("Ok\n"); + fflush(stdout); + pid_t pid = fork(); if (pid == 0) { @@ -100,9 +104,15 @@ void execute_command_pipeline(Pipeline pipeline) { int trunk_fd = STDIN_FILENO; int pgid = -1; - size_t i = 0; + printf("Starting pipeline of length %d\n", pipeline.count); + fflush(stdout); + + signal(SIGTTIN, SIG_IGN); + signal(SIGTTOU, SIG_IGN); for (int i = 0; i < pipeline.count; i++) { + printf("Processing cmd %d\n", i); + fflush(stdout); PlCommand cmd = *get_from_Pipeline(&pipeline, i); ExecutableCommand exec_cmd = process_pl_command(cmd); exec_cmd.stdin_fd = trunk_fd; @@ -130,7 +140,7 @@ void execute_command_pipeline(Pipeline pipeline) { } void execute_pipeline_tree(PipelineTree pltree) { - printf("Hello"); + printf("Hello\n"); fflush(stdout); execute_command_pipeline(*pltree.root); } |
