Системный вызов Linux chdir в C

Sistemnyj Vyzov Linux Chdir V C



Изменения в текущем рабочем каталоге устройства производятся с использованием метода «CHDIR». В различных обстоятельствах вы можете решить изменить текущую рабочую папку вашего устройства. Или вы хотите запустить сценарий C из папки вместо текущего рабочего каталога. Следовательно, чтобы запустить этот конкретный код C, вы должны изменить свою текущую рабочую папку. Кроме того, метод «getcwd» языка кодирования C может использоваться для быстрого определения момента изменения текущей рабочей папки. Теперь в этой статье мы будем использовать функцию C chdir() для изменения рабочего каталога.

Пример 01:

Начнем с работы функции chdir() языка C в операционной системе Linux. Для этого вы должны убедиться, что компилятор C уже смонтирован на вашем конце. В большинстве случаев мы склонны использовать компилятор C «gcc» в нашей операционной системе Kali Linux. Чтобы начать с этого примера, у нас должен быть файл C с расширением «c». Мы назвали его p1.c и попытались открыть его с помощью «нано»-редактора Linux, как показано ниже.







Когда ваш файл открывается в редакторе, вы должны начать программировать в нем. Мы начали нашу программу на C, добавив основные библиотеки заголовков C, которые необходимы в любой программе на C. Поэтому библиотеки заголовков stdio.h и unistd.h используются для того, чтобы стандартный ввод и вывод могли выполняться внутри программы. Заголовок unistd.h использовался для использования некоторых стандартных функций C, которые особенно необходимы для этого примера. Теперь мы запустили функцию драйвера main() C в этом коде, чтобы она запускалась автоматически при выполнении. Переменная массива символьных типов «путь» была определена с размером 100, поскольку она хранит только 100 значений.



Оператор функции printf() использовался для простого вывода текущей папки рабочего каталога этого файла C с помощью функции «getcwd()». Эта функция использует переменную массива «путь» размером 100, чтобы получить в ней текущий рабочий каталог и передать его оператору функции printf() для отображения. Теперь пришло время использовать функцию chdir(). Мы можем передавать любые символы, чтобы указать, хотим ли мы двигаться вперед в каталоге или двигаться в обратном направлении в том же каталоге.



Итак, мы попробовали использовать символы «..» в операторе функции chdir() для перемещения из текущего рабочего каталога в обратном направлении, то есть на один уровень ниже текущего рабочего каталога. Обратите внимание, что прямо сейчас мы работали в папке проекта нашего основного рабочего каталога «Linux» системы Kali Linux. Теперь мы находимся в каталоге «Linux» вместо каталога «project» после использования функции «chdir». Теперь мы еще раз попробовали оператор функции «printf()», чтобы отобразить текущий рабочий каталог, используя в нем функцию «getcwd». Наша программа заканчивается оператором return 0.





После сохранения этой C-программы нам нужно скомпилировать ее с помощью компилятора «gcc», который мы уже настроили на нашем конце. Используя эту инструкцию gcc, мы создали объектный файл этого файла C с именем «p1.out», используя параметр –o, как показано ниже.



Теперь, когда вы запускаете его объектный файл в своем терминале Linux, вы сначала получите рабочий каталог, используемый программой, прежде чем использовать функцию chdir(). После использования функции chdir() мы переместились в один каталог ниже, и отображается этот конкретный каталог «дом».

Пример 02:



Используя те самые заголовочные библиотеки, мы запустили этот программный код. В функции main() этой программы мы использовали оператор «if», используя в нем функцию chdir().

Эта функция будет проверять, существует ли «/user» в системе или нет, установив условие «/user!=0». Если каталог не существует в текущей системе, вызов функции perror будет использоваться для отображения соответствующего сообщения об ошибке, т. е. «каталог пользователя не существует. Мы использовали другой оператор «если», используя внутри него функцию chdir(). Цель использования функции chdir() здесь такая же, как и в приведенном выше операторе if, а именно для проверки существования каталога с использованием условия «/temp»!=0. Единственная разница заключается в использовании нового имени каталога «/temp» вместо «/user», как вы можете видеть на изображении кода ниже.







Если каталог /temp не существует в системе, функция perror, используемая в операторе «if», выдаст сообщение об ошибке «каталог /temp не существует», как показано на изображении ниже. После использования обоих операторов «if» мы заканчивали этот код оператором C return 0. Теперь программа окончена. Мы сохраняли наш код C с помощью сочетания клавиш Ctrl+S перед его выполнением.





Теперь, когда файл был сохранен в вашей системе, мы должны скомпилировать код C с помощью компилятора «gcc», который мы уже смонтировали на нашем конце. Используя эту инструкцию, мы создали ее объектный файл «p2.out», используя опцию –o в инструкции.





После выполнения созданного объектного файла «p2.out» с символами «./» мы узнали, что обе директории, указанные в пути «chdir», не существуют в системе, или ошибка, отображаемая в оболочке, демонстрирует это правильно.



Вывод

Сегодня в этой статье мы продемонстрировали использование функции chdir() языка C в операционной системе Kali Linux. Самый первый пример иллюстрирует, как можно использовать функцию chdir() для изменения рабочего каталога, т. е. для перехода из одного каталога в другой. Последний пример C демонстрирует, как мы можем проверить, существует ли текущий рабочий каталог, указанный в пути chdir(), или нет.