Системно извикване на Linux chdir в C

Sistemno Izvikvane Na Linux Chdir V C



Промените в текущата работна директория на устройството се правят с помощта на метода 'CHDIR'. При различни обстоятелства може да решите да промените настоящата работна папка на вашето устройство. Или искате да изпълните C скрипт от папка вместо от настоящата работна директория. Следователно, за да изпълните този специфичен C код, трябва да промените настоящата си работна папка. Освен това, методът „getcwd“ на езика за кодиране C може да се използва за бързо определяне кога настоящата работна папка е променена. Сега ще използваме функцията chdir() на C в тази статия, за да променим работна директория.

Пример 01:

Нека започнем с работата на функцията chdir() на C в операционната система Linux. За целта трябва да сте сигурни, че компилаторът на C вече е монтиран във вашия край. В повечето случаи сме склонни да използваме компилатора „gcc“ на C в нашата операционна система Kali Linux. За да започнем с този пример, трябва да имаме C файл с разширение 'c'. Нарекохме го p1.c и се опитахме да го отворим с „нано“ редактора на Linux, както е представено по-долу.







Когато вашият файл се отвори в редактора, трябва да започнете да кодирате в него. Започнахме нашата C програма, като добавихме основните библиотеки със заглавки на C, които са задължителни във всяка C програма. Следователно библиотеките със заглавки stdio.h и unistd.h се използват, за да се гарантира, че стандартният вход и изход могат да протичат в рамките на програмата. Заглавието unistd.h е използвано за използване на някои стандартни функции на C, които са необходими специално за този пример. Сега стартирахме функцията на драйвера main() на C в този код, за да се изпълнява автоматично при изпълнение. Променливата за масив от символен тип „path“ е дефинирана с размер 100, тъй като съхранява само 100 стойности.



Изявлението на функцията printf() е използвано просто за отпечатване на папката на текущата работна директория на този C файл с помощта на функцията „getcwd()“. Тази функция използва променливата на масива „path“ с размер 100, за да получи текущата работна директория в нея и да я прехвърли на оператора на функцията printf() за показване. Сега е време да използвате функцията chdir(). Можем да предадем всякакъв вид знаци, за да посочим дали искаме да се придвижим напред в директорията или да се преместим в посока назад в същата директория.



И така, ние опитахме символите „..“ в израза на функцията chdir(), за да се преместим от текущата работна директория в обратна посока, т.е. едно ниво под текущата работна директория. Обърнете внимание, че в момента работим в папката на проекта на нашата основна работна директория „Linux“ на системата Kali Linux. Сега сме в директорията 'Linux' вместо в директорията 'project', след като използваме функцията 'chdir'. Сега отново опитахме оператора на функцията “printf()”, за да покажем текущата работна директория, използвайки функцията “getcwd” в нея. Нашата програма завършва с оператор return 0.





След като запазим тази C програма, трябва да я компилираме с помощта на компилатора „gcc“, който вече сме конфигурирали в нашата страна. Използвайки тази инструкция gcc, ние създадохме обектен файл на този C файл с име „p1.out“, използвайки опцията –o, както е показано по-долу.



Сега, когато стартирате неговия обектен файл във вашия Linux терминал, първо ще получите работната директория, използвана от програмата, преди да използвате функцията chdir(). След използването на функцията chdir() се преместихме в едната директория по-долу и се показва тази конкретна директория „home“.

Пример 02:



Използвайки същите библиотеки със заглавки, стартирахме този програмен код. В рамките на функцията main() на тази програма ние използвахме израза „if“, използвайки функцията chdir() в него.

Тази функция ще проверява дали „/user“ съществува в системата или не, като зададе условието „/user!=0“. Ако директорията не съществува в текущата система, извикването на функцията perror ще се използва за показване на съответното съобщение за грешка, т.е. „потребителската директория не съществува. Ние използвахме друг израз „if“, използвайки функцията chdir() в него. Целта на използването на функцията chdir() тук също е същата, както направихме в горния оператор if, който е за проверка дали директорията съществува или не, като се използва условието “/temp”!=0. Единствената разлика е използването на ново име на директория „/temp“ вместо „/user“, както можете да видите от изображението на кода по-долу.







Ако директорията /temp не съществува в системата, функцията perror, използвана в израза „if“, ще изведе съобщение за грешка „/temp директорията не съществува“, както е показано на изображението по-долу. След използването на двата израза „if“, ние завършваме този код с израза return 0 на C. Сега програмата приключи. Записваме нашия C код с помощта на клавишната комбинация Ctrl+S преди неговото изпълнение.





Сега, след като файлът е записан във вашата система, трябва да компилираме C кода с компилатора „gcc“, който вече сме монтирали в нашата страна. Използвайки тази инструкция, ние създаваме неговия обектен файл „p2.out“, използвайки опцията –o в инструкцията.





След като изпълнихме създадения обектен файл „p2.out“ със знаците „./“, научихме, че и двете директории, споменати в пътя на „chdir“, не съществуват в системата или грешката, показана в обвивката, демонстрира го правилно.



Заключение

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