Géré avec getcwd. Le chemin est donc bien le chemin réel maintenant.
Il reste juste à voir le chemin donné par la session en cas d'échec de getcwd, sachant que getcwd n'est vraiment pas censé échouer.
void create_3_env_variables(t_minishell *m)
{
char PWD[PATH_MAX];
if (add_new_envp(&m->list_envp,"_=", "/usr/bin/env"))
exit_msg_minishell(m, "Malloc failed at create_3_env_variables", -1);
m->total_size_envp += ft_strlen("_=") + ft_strlen("/usr/bin/env");
if (add_new_envp(&m->list_envp, "SHLVL=", "1"))
exit_msg_minishell(m, "Malloc failed at create_3_env_variables", -1);
m->total_size_envp += ft_strlen("SHLVL") + ft_strlen("1");
if (getcwd(PWD, sizeof(PWD)) == NULL)
{
perror("minishell: getcwd");
ft_strlcpy(PWD, "/home/goinfre/faboussa", 22);
}
if (add_new_envp(&m->list_envp, "PWD=", PWD))
exit_msg_minishell(m, "Malloc failed at create_3_env_variables", -1);
m->total_size_envp += ft_strlen("PWD=") + ft_strlen(PWD);
}
Géré avec
getcwd
. Le chemin est donc bien le chemin réel maintenant. Il reste juste à voir le chemin donné par la session en cas d'échec de getcwd, sachant que getcwd n'est vraiment pas censé échouer.