- •Індивідуальне завдання №1
- •Int main 0
- •Індивідуальне завдання №2
- •2. Блок-схема
- •3. /* Програма - приклад створення нового процесу з однаковою роботою процесів нового і батьківського */
- •Int main 0 {
- •1.Підключення бібліотек.
- •Індивідуальне завдання №3
- •2. Блок-схема
- •Int main (int arge, char *argv [], char *envp []) /*повний прототип функції main*/
- •1.Підключення бібліотек.
- •Індивідуальне завдання №4
- •2. Блок-схема
- •Int main()
- •1.Підключення бібліотек.
- •Індивідуальне завдання №5
- •2. Блок-схема
- •Int fd[2], resuit;
1.Підключення бібліотек.
2.PID та PPID.
3.Створення нового процесу fork.
4.Взнаємо ідентифікатори PID та PPID.
5.Печатаємо значення PID та PPID.
Індивідуальне завдання №3
Завдання
1. Скласти програму на мові С яка б міняла контекст процесу користувача (запускала б іншу програму). Відкомпілюйте її за допомогою системного виклику execle(). Для завдання потрібно вжити команду cat з аргументом в командній лінійці ааа.с без зміни параметрів середовища, тобто фактично виконати команду "cat ааа.с", яка повинна вивести вмістиме даного файла ааа.с на екран. Для функції ехесіе в якості імені програми ми вказуємо її повне ім'я зі шляхом від кореневої директорії - "/bin/cat". Перше слово в командній лінійці повинно співпадати у нас з іменем запускаючої програми. Друге слово в командній лінійці - це ім'я файла ааа.с, інформацію якого ми бажаємо розпечатати. Відкомпілюйте створену програму і прослідіть, щоб у вас файл ааа.с був присутній в текучій директорії (простіше записати текст програми під даним іменем). Проаналізуйте результат.
2. Блок-схема
Програма
/* Програма 03-2.c, яка змінює контекст процесу (яка запускає іншу програму)*/
include <sys/types. h> /*підключаємо бібліотеки*/
include <unistd. h>
include <studio. h>
Int main (int arge, char *argv [], char *envp []) /*повний прототип функції main*/
{
/* Ми будем запускати команду cat з аргументом командної лінійки "03- 2.с" без зміни параметра середовища, тобто виконувати команду «cat 03- 2.с», яка повинна видати вмістиме даного файла на екран. Для функції execle в якості імені програми вказуємо її повне ім'я зі шляхом від кореневого каталога - /bin/cat/. Перше слово - це ім'я програми запуску, друге - вмістиме якого хочемо розпечатати *./
(void) execle ("/bin/cat", "/bin/cat", "cat 03-2.c ", 0, envp);
/* Сюди попадаємо тільки при виникненні помилки */
printf ("Error on program start \n ");
exit (-1);
return 0; /* ніколи не виконується, а потрібен для того щоб компілятор не видавав warning */
}
4.
Висновок:
Опис програми. При виконанні цієї роботи я використав такі блоки:
1.Підключення бібліотек.
2.Підключення int main (int arge, char *argv [], char *envp [])
3.Системний виклик execle.
4.Вивід повідомленя.
При виконання цієї роботи я склав програму на мові С яка міняла контекст процесу користувача. І відкомпілювали її за допомогою системного виклику
execle().Для функції execle в якості імені програми я вказав її повне ім’я зі шлахом від кореневої директорії.
Індивідуальне завдання №4
Завдання
1.Написати програму на мові С, яка б демонструвала читання інформації з файла. Наберіть програму, відкомпілюйте її і запустіть її на виконання. Подумайте і реалізуйте виведення інформації, прочитаної в файлі на екран.