Книга: Основы программирования в Linux
chdir и getcwd
chdir и getcwd
Программа может перемещаться по каталогам во многом так же, как пользователь перемещается по файловой системе. Как вы применяете в командной оболочке команду cd
для смены каталога, так и программа может использовать системный вызов chdir
.
#include <unistd.h>
int chdir(const char *path);
Программа может определить свой текущий рабочий каталог, вызвав функцию getcwd
.
#include <unistd.h>
char *getcwd(char *buf, size_t size);
Функция getcwd
записывает имя текущего каталога в заданный буфер buf
. Она возвращает NULL
, если имя каталога превысит размер буфера (ошибка ERANGE
), заданный в параметре size
. В случае успешного завершения она возвращает buf
.
Функция getcwd
может также вернуть значение NULL
, если во время выполнения программы каталог удален (EINVAL
) или изменились его права доступа (EACCESS
).