Вернитесь в предыдущий каталог в Linux с помощью программы на C - PullRequest
1 голос
/ 17 августа 2011

Я в каталоге /home/destination Мне нужно вернуться в каталог /home. Любые идеи о том, как реализовать это с помощью C-программы?

Ответы [ 3 ]

4 голосов
/ 17 августа 2011

Программа может изменять только свою собственную среду . Таким образом, программа может chdir, но она не изменит текущий каталог родителя. Вот почему cd не может быть реализовано как внешняя команда.

4 голосов
/ 17 августа 2011

Вы можете использовать функцию chdir для этого:

chdir(".."); /* change current working directory, go one level up */
1 голос
/ 17 августа 2011

Если вы хотите подняться на уровень, chdir(".."); сделает всю работу.Но если вы хотите вести себя как cd -, вам следует использовать этот код:

char *prev;
prev = getcwd(prev, 0); /*POSIX.1-2001: will malloc enough memory*/
/*fail if prev is NULL, do something*/
chdir(prev);
free(prev);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...