/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/04/29 14:04:28 by dkaiser #+# #+# */
-/* Updated: 2024/05/07 15:29:47 by dkaiser ### ########.fr */
+/* Updated: 2024/05/07 16:36:21 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
typedef struct s_pxdata
{
- int in_fd;
- int out_fd;
- char **cmds;
-} t_pxdata;
+ int in_fd;
+ int out_fd;
+ char **cmds;
+} t_pxdata;
-char **get_split_path(char *envp[]);
-char *get_pwd(char *envp[]);
-char *find_in_path(char *cmd, char **path);
-char *get_cmd_path(char *cmd, char **path, char *pwd);
+char **get_split_path(char *envp[]);
+char *get_pwd(char *envp[]);
+char *find_in_path(char *cmd, char **path);
+char *get_cmd_path(char *cmd, char **path, char *pwd);
t_pxdata *get_pxdata(int argc, char *argv[], char *envp[]);
#endif // PIPEX_H
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/02 16:19:31 by dkaiser #+# #+# */
-/* Updated: 2024/05/07 16:02:38 by dkaiser ### ########.fr */
+/* Updated: 2024/05/07 16:36:32 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
char *get_cmd_path(char *cmd, char **path, char *pwd)
{
char *cur_dir;
- char *lone_cmd;
- int len;
- char *res;
+ char *lone_cmd;
+ int len;
+ char *res;
if (cmd[0] == '/')
- return (cmd); // TODO: Maybe use duplicate instead, so there will be no problem on free()
+ return (cmd);
+ // TODO: Maybe use duplicate instead, so there will be no problem on free()
else if (ft_strchr(cmd, '/'))
{
cur_dir = ft_strjoin(pwd, "/");
res = find_in_path(lone_cmd, path);
if (!res)
return (NULL);
- return(ft_strjoin(res, ft_strchr(cmd, ' ')));
+ return (ft_strjoin(res, ft_strchr(cmd, ' ')));
}
else
{
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/02 12:13:23 by dkaiser #+# #+# */
-/* Updated: 2024/05/07 16:04:22 by dkaiser ### ########.fr */
+/* Updated: 2024/05/07 16:36:36 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
cmds[i - 2] = get_cmd_path(argv[i], path, pwd);
i++;
}
- cmds[i - 2] = 0;
+ cmds[i - 2] = 0;
i = 0;
while (path[i])
free(path[i++]);
if (!result)
return (NULL); // TODO: Check if an error message needs to be sent
result->in_fd = open(argv[1], O_RDONLY);
- result->out_fd = open(argv[--argc], O_WRONLY | O_CREAT | O_TRUNC, S_IREAD | S_IWUSR);
+ result->out_fd = open(argv[--argc], O_WRONLY | O_CREAT | O_TRUNC,
+ S_IREAD | S_IWUSR);
result->cmds = get_cmds(argc, argv, envp);
return (result);
}
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/04/29 13:35:21 by dkaiser #+# #+# */
-/* Updated: 2024/05/07 16:04:43 by dkaiser ### ########.fr */
+/* Updated: 2024/05/07 16:36:39 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
#include "pipex.h"
+#include <stdio.h>
#include <stdlib.h>
#include <sys/_types/_pid_t.h>
#include <unistd.h>
-#include <stdio.h>
-int pipex(t_pxdata *data, char *envp[])
+int pipex(t_pxdata *data, char *envp[])
{
- int p[2];
- pid_t pid;
- char **cmd;
- int status;
+ int p[2];
+ pid_t pid;
+ char **cmd;
+ int status;
pipe(p);
pid = fork();
return (EXIT_SUCCESS);
}
-int main(int argc, char *argv[], char *envp[]) {
- t_pxdata *data;
+int main(int argc, char *argv[], char *envp[])
+{
+ t_pxdata *data;
if (argc != 5)
return (1);
-
data = get_pxdata(argc, argv, envp);
/* if (data->in_fd < 0 || data->out_fd < 0) */
/* return (1); */
/* ft_printf("CMD [%d]: %s\n", i, data->cmds[i]); */
/* i++; */
/* } */
- return pipex(data, envp);
+ return (pipex(data, envp));
}