Системні виклики. Робота з компілятором GCC в ОС GNU/Linux

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
УІ
Кафедра:
ЗІ

Інформація про роботу

Рік:
2018
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Операційні системи

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА Кафедра ЗІ / З В І Т до лабораторної роботи №6 з курсу: «Операційні системи» на тему: «Системні виклики. Робота з компілятором GCC в ОС GNU/Linux» Варіант № 10 МЕТА РОБОТИ – оволодіти практичними навиками роботи з компілятором GCC та системними викликами в операційній системі GNU/Linux; ознайомитись із механізмом виконання системних викликів, процесом компіляції та побудови виконавчих файлів в цій ОС. Завдання За допомогою системних викликів у своїй домашній директорії створити дворівневу структуру директорій. У директорії другого рівня створити 2 файли та перемістити їх у директорію першого рівня. Видалити пусту папку. Реалізувати обробку помилок, які можуть виникнути в ході роботи програми. Тексти програм Lab.h #ifndef WORK_H_ #define WORK_H_ int lab(void); #endif /*WORK_H_*/ Work.c #include <stdio.h> #include <sys/stat.h> #include <fcntl.h> #include "lab.h" int lab(void) { mkdir("./level1", 0777); mkdir("./level1/level2", 0777); int fd1 = open("./level1/level2/a.txt", O_RDWR|O_CREAT, 0777); // Originally 777 (see comments) int fd2 = open("./level1/level2/b.txt", O_RDWR|O_CREAT, 0777); if (fd1 != -1) { // use file descriptor close(fd1); } if (fd2 != -1) { // use file descriptor close(fd2); } rename("./level1/level2/a.txt", "./level1/a.txt"); rename("./level1/level2/b.txt", "./level1/b.txt"); remove("./level1/level2"); return 0; } Main.c #include <stdio.h> #include "lab.h" int main(void) { int Result = lab(); printf(Result); return 0; } Makefile work: work.o main.o gcc work.o main.o -o startLab6 -lm calculate.o: work.c lab.h gcc -c work.c main.o: main.c lab.h gcc -c main.c clean: rm -f work work.o main.o install: cp work /usr/local/bin/work uninstall: rm -f /usr/local/bin/work Результати виконання super@ubuntu:~/Завантаження/lab6$ ls lab.h main.c Makefile work.c super@ubuntu:~/Завантаження/lab6$ make cc -c -o work.o work.c work.c: In function ‘lab’: work.c:15:5: warning: implicit declaration of function ‘close’; did you mean ‘pclose’? [-Wimplicit-function-declaration] close(fd1); pclose gcc -c main.c gcc work.o main.o -o startLab6 –lm super@ubuntu:~/Завантаження/lab6$ ./startLab6 super@ubuntu:~/Завантаження/lab6$ ls lab.h level1 main.c main.o Makefile startLab6 work.c work.o super@ubuntu:~/Завантаження/lab6$ cd level1/ super@ubuntu:~/Завантаження/lab6/level1$ ls a.txt b.txt super@ubuntu:~/Завантаження/lab6/level1$ Висновки На цій лабораторній роботі я оволодів практичними навиками роботи з компілятором GCC та системними викликами в операційній системі GNU/Linux, ознайомився із механізмом виконання системних викликів, процесом компіляції та побудови виконавчих файлів в цій ОС, шляхом виконання тестового завдання відповідно до варіанту. Тестове завдання було виконано успішно, тексти програм та результати з терміналу подано у звіті.
Антиботан аватар за замовчуванням

19.06.2019 05:06-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!