summaryrefslogtreecommitdiffstats
path: root/shell/process.h
blob: 3b7e833e7bfed1a496fc959dd85cd3448eff7a40 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef SHELL_PROCESS_H
#define SHELL_PROCESS_H
#include <stdbool.h>
#include <stddef.h>

typedef struct {
    char **argv;
    size_t argc;
    int in_fd;
    int out_fd;
    int  pid;
    bool blocking;
} Process;

/*
 * Parses the given line and creates an array of processes at *processes
 *  Expects tail -F file | grep panic & to mean that both processes should
 *  run in the background
 */
int parse_line(char const *line, Process ** processes);

/*
 * returns the return code of the executed program
 */
int exec_command(Process p);

void free_processes(Process ** processes);

#endif // SHELL_PROCESS_H