Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Системні виклики та робота з файлами в ОС Linux

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

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

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

Рік:
2018
Тип роботи:
Лабораторна робота
Предмет:
Операційні системи телекомунікаційних мереж
Група:
БІ 21

Частина тексту файла

Національний університет «Львівська політехніка» Інститут комп’ютерних технологій, автоматики та метрології ІКТА Кафедра БІТ  Звіт Лабораторна робота № 3 «Системні виклики та робота з файлами в ОС Linux» Варіант – 14 Львів 2018 Мета роботи Оволодіти практичними навичками роботи з компілятором GCC та системними викликами в операційній системі Linux. Ознайомитись із механізмом виконання системних викликів, процесом компіляції та побудови виконавчих файлів в ОС Linux. Теоретичні відомості 1. Знайомство з компілятором GCC Засобами, традиційно використовуваними для створення програм для відкритих операційних систем, є інструменти розробника GNU. Проект GNU був заснований в 1984 році Річардом Столлманом. Його необхідність була викликана тим, що в той час співпраця між програмістами не обходилась без труднощів, оскільки власники комерційного програмного забезпечення чинили численні перешкоди для такої співпраці. Метою проекту GNU було створення комплекту програмного забезпечення під єдиною ліцензією, яка не допускала б можливості присвоювання кимось ексклюзивних прав на це ПЗ. Частиною цього комплекту і є набір інструментів для розробника, яким ми і будемо користуватися, і який повинен входити в усі дистрибутиви Linux. Одним з цих інструментів є компілятор GCC. Спочатку ця абревіатура розшифровувалась, як GNU C Compiler. Зараз вона означає - GNU Compiler Collection. Розглянемо створення простої програми за допомогою GCC. За сформованою традицією перша програма буде просто виводити в консолі привітання «Hello world!». 2. Системні виклики Під терміном «системний виклик» в програмуванні та обчислювальній техніці розуміють звернення прикладної програми до ядра операційної системи (ОС) для виконання будь-якої операції. Сучасні операційні системи (ОС) передбачають поділ часу між обчислювальними процесами, що виконуються (багатозадачність) і розділення повноважень, що перешкоджає виконуваним програмам звертатися до даних інших програм і обладнання. Ядро ОС виконується в привілейованому режимі роботи процесора. Для виконання міжпроцесної операції або операції, що вимагає доступу до обладнання, програма звертається до ядра, яке, в залежності від повноважень викликає процес, виконує або відмовляє у виконанні такого виклику. З точки зору програміста, системний виклик зазвичай виглядає як виклик підпрограми або функції з системної бібліотеки. Однак системний виклик, як окремий випадок виклику такої функції або підпрограми, слід відрізняти від більш загального звернення до системної бібліотеки, оскільки останнє може і не вимагати виконання привілейованих операцій. Завдання Варіант – 14 Створити три файли з кодом на мові С. Два файли з вихідним кодом на мові С, перший повинен містити процедури, що реалізують задане варіантом завдання, а другий функцію main. Третій файл – заголовний (.h). Створити Make-файл, що міститиме правила для створення виконавчого файлу, а також правила clean, install і uninstall. За допомогою системних викликів у своїй домашній директорії створити дворівневу структуру директорій. У директорії другого рівня створити 2 файли та виконати їх копіювання у директорію першого рівня. Реалізувати обробку помилок, які можуть виникнути в ході роботи програми. Хід роботи Використані системні виклики: mkdir creat open read write Текст програми 1. Makefile. lab3: functions.o lab3.o gcc functions.o lab3.o -o lab3 functions.o: functions.c functions.h gcc -c functions.c lab3.o: lab3.c functions.h gcc -c lab3.c clean: rm -f lab3 functions.o lab3.o install: cp lab3 /usr/local/bin/lab3 uninstall: rm -f /usr/local/bin/lab3 2. functions.h. int main(int argc, char* argv[]); int executeTask(char* argv[]); int createDir(const char* path); int createFile(const char* path); int copyFile(const char* src, const char* dest); 3. lab3.c. #include <stdio.h> #include "functions.h" int main(int argc, char* argv[]) { int res; if (argc == 5) { res = executeTask(argv); } else ...
Антиботан аватар за замовчуванням

25.11.2018 21:11

Коментарі

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

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

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

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

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини