void my_clear(t_env *e) { char **clear; char *cmd; int i; pid_t pid; int status; cmd = "clear clear"; i = 0; clear = my_str_to_wordtab(cmd, ' '); if ((pid = fork()) == -1) my_exit2("Error -> Fork Failed :("); if (pid == 0) { while (e->path[i]) { e->file = my_strcat_separe(e->path[i], clear[0], '/'); execve(e->file, clear, e->env); i++; } } else { wait(&status); my_printf("\033[32m[%s@localhost ~]$> \033[0m", e->user); } }
void window_init(t_window *w) { w->x = 500; w->y = 500; w->xs = 50; w->ys = 50; w->zs = 50; if ((w->mlx_ptr = mlx_init()) == NULL) my_exit2("Error -> Mlx_init Failed"); w->win_ptr = mlx_new_window(w->mlx_ptr, w->x, w->y, "Raytracer - V1 - Julien Karst"); w->img_ptr = mlx_new_image(w->mlx_ptr, w->x, w->y); w->img_tab = (int*)mlx_get_data_addr(w->img_ptr, &(w->bpp), &(w->sizeline), &(w->endian)); }
char *my_strcat(char *dest, char *src) { int i; int c; int len; char *str; i = 0; c = 0; len = my_strlen(dest) + my_strlen(src) + 1; if ((str = malloc(sizeof(char) * len)) == NULL) my_exit2("Error -> Malloc Failed in my_strcat"); while (dest[i] != '\0') str[c++] = dest[i++]; i = 0; while (src[i] != '\0') str[c++] = src[i++]; str[c] = 0; return (str); }
void my_redir_left_double(t_env *e, t_pipe *a, int t) { char *meme; pid_t pid; t_pipe *b; int status; b = a + 1; my_printf(">> "); while ((meme = get_next_line(0)) && detect_cmd(b->pos1[0], meme) != 1) my_printf(">> "); if ((pid = fork()) == -1) my_exit2("Error -> fork failed\n"); if (pid == 0) my_exec(e, a); else { waitpid(pid, &status, WSTOPPED); e->mode = 2; } }
int my_elem(char **path2, char **str2, char **env) { t_par *par; if (!(par = malloc(sizeof(par)))) return (1); par->a = 0; par->i = 0; par->acs = -1; par->elem = malloc(8096 * sizeof(char)); if (my_exit2(str2) == 2) return (2); if (found_str2(str2, env) == 0) return (0); if (my_setenv(str2, env) == 0) return (0); if (my_unsetenv(str2, env) == 0) return (0); if (my_executable(str2, env) == 0) return (0); my_elem2(path2, str2, env, par); return (3); }
void my_sign2() { if ((kill(a->pid, 12)) == -1) my_exit2("Error -> Kill on SIGUSR2"); }
void my_sign1() { if ((kill(a->pid, 10)) == -1) my_exit2("Error -> Kill on SIGUSR1"); }