Executor working, need to validate with the parser fixed, all norme fixed

This commit is contained in:
marcnava-42cursus
2026-02-11 02:29:45 +01:00
parent e02613253a
commit df6ed1c5cc
6 changed files with 420 additions and 326 deletions

View File

@@ -19,23 +19,38 @@
# define READ_PIPE 0
# define WRITE_PIPE 1
typedef struct s_pipeline
{
int prev_read_fd;
int pipefd[2];
} t_pipeline;
/******************************************************************************/
/* Functions */
/******************************************************************************/
// executor.c
# define PIPE_ERROR -1
# define FORK_ERROR -1
extern uint8_t execute(t_list *command, t_minishell *minishell);
typedef struct s_pipeline
{
int prev_read_fd;
int pipefd[2];
} t_pipeline;
typedef struct s_exec_state
{
uint8_t exit_status;
t_pipeline pipeline;
t_list *current_command;
pid_t last_child_pid;
} t_exec_state;
extern uint8_t execute(t_list *command, t_minishell *minishell);
extern uint8_t executor_execute_command(t_command *cmd, t_minishell *msh);
extern char *executor_resolve_command_path(const t_command *cmd,
t_minishell *msh);
extern bool executor_is_builtin_command(const t_command *cmd,
t_minishell *msh);
extern int executor_create_pipe_if_needed(t_list *node, t_pipeline *pl);
extern bool executor_is_fork_required(t_list *node, const t_pipeline *pl,
t_minishell *msh);
extern void executor_setup_child_input(t_pipeline *pipeline);
extern void executor_setup_child_output(t_list *node, t_pipeline *pl);
extern void executor_child_process(t_list *node, t_pipeline *pl,
t_minishell *msh);
extern void executor_parent_cleanup(t_list *node, t_pipeline *pl);
extern uint8_t executor_wait_for_children(pid_t last_child_pid);
extern void executor_cmdfree(t_command *command);
#endif /* EXECUTOR_H */