Как сменить директорию в C?

В языке программирования C для смены текущей директории используется функция chdir() или ее аналог cd().

Прототип функции chdir() выглядит следующим образом:

int chdir(const char *path);

Функция chdir() принимает единственный параметр path, который является строковым указателем на путь к новой директории. Возвращает функция chdir() 0 при успешной смене директории и -1 при возникновении ошибки.

Пример использования метода chdir():

#include <unistd.h>
#include <stdio.h>

int main() {
    if (chdir("/home/user/newdir") == 0) {
        printf("Директория успешно изменена.n");
    } else {
        printf("Ошибка при смене директории.n");
    }

    return 0;
}

В данном примере используется абсолютный путь /home/user/newdir для смены текущей директории. Если смена директории прошла успешно, то будет выведено сообщение "Директория успешно изменена". В противном случае будет выведено сообщение "Ошибка при смене директории".

Если нужно изменить директорию относительно текущей, можно использовать относительный путь:

#include <unistd.h>
#include <stdio.h>

int main() {
    if (chdir("../newdir") == 0) {
        printf("Директория успешно изменена.n");
    } else {
        printf("Ошибка при смене директории.n");
    }

    return 0;
}

В данном примере используется относительный путь ../newdir для смены текущей директории на новую, расположенную на уровень выше относительно текущей. Если смена директории прошла успешно, то будет выведено сообщение "Директория успешно изменена". В противном случае будет выведено сообщение "Ошибка при смене директории".

Обратите внимание, что chdir() меняет текущую директорию только для текущего процесса. Если вы хотите изменить директорию для всей программы и всех процессов, используйте функцию chroot() или fchdir().

Также стоит отметить, что функции chdir() и cd() могут зависеть от системы.