예제 #1
0
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);
    }
}
예제 #2
0
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));
}
예제 #3
0
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;
    }
}
예제 #5
0
파일: core.c 프로젝트: PierrickCoulon/Stage
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);
}
예제 #6
0
void	my_sign2()
{
  if ((kill(a->pid, 12)) == -1)
    my_exit2("Error -> Kill on SIGUSR2");
}
예제 #7
0
void	my_sign1()
{
  if ((kill(a->pid, 10)) == -1)
    my_exit2("Error -> Kill on SIGUSR1");
}