pipex/bonus/pipex.h
2023-03-08 14:47:02 +01:00

53 lines
1.9 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* pipex.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/01/11 15:33:34 by erey-bet #+# #+# */
/* Updated: 2023/03/08 14:33:18 by erey-bet ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef PIPEX_H
# define PIPEX_H
# include "../libft/libft.h"
# include "../get_next_line/get_next_line.h"
# include <fcntl.h>
# include <unistd.h>
# include <sys/types.h>
# include <sys/wait.h>
typedef struct s_data
{
char **cmds;
char ***flgs;
char *fl1;
char *fl2;
int fd1;
int fd2;
int fd[2][2];
char **env;
int argc;
} t_data;
int get_next(char *cmd, char c);
int print_error(int type, char *error);
char **get_flags(char *cmd);
char *get_command(char *cmd);
char **add_cmd(char **flg, char *cmd);
int parsing(int argc, char *argv[], char **env, t_data *data);
char *test_acces(char **s, char **cmd, char **path, int *y);
char *cmd_exist(char **env, char **cmd, int y, char **s);
char *find_command(char **env, char *cmd);
int here_doc(int argc, char *argv[], char **env, t_data *data);
int pipex_loop(int argc, int **fk, t_data data);
void choice_cmd(t_data data, int i);
int verification_command(char *argv[], t_data data);
int free_all(t_data *data);
int open_close_pipe(t_data *data, int boolean, int file);
#endif