Hola amigos. Estoy haciendo una shell en c como ejercicio práctico. Estaba implementando el equivalente a "cd" en la shell de linux. Funciona de maravilla, exceptuando que si tu quieres retroceder un directorio poniendo "cd ..", lo que sucede es que retrocede dos directorios, es decir... Si estás en /home/usario/Escritorio, te lleva a /home.
La función es esta, aunque no creo que esté mal. Sabéis como se puede solucionar?
void cddir(char *tr) {
if(chdir(tr)==0) {
chdir(tr);
} else {
printf("%s %s\n", "No existe el directorio: ", tr);
}
}
Gracias.