Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laba_2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
122.37 Кб
Скачать

Компилятор gcc

GNU Compiler Collection (gcc) - это семейство компиляторов с языков C, C++, которые объединены общей технологией и распространяются в рамках проекта GNU. Домашняя страничка компилятора находится по адресу http://www.gnu.org/software/gcc/gcc.html

Этот компилятор является "стандартным" средством для компиляции всех программ, входящих в проект GNU. gcc также является основным компилятором операционной системы Linux - с его помощью компилируется ядро системы.

Примеры компиляции программы main.c

gcc main.c -o main

g++ main.cpp -o main

Ключ “o” задает имя исполняемого файла, если его не указать, то в случае успешной компиляции будет создан исполняемый файл “a.out”

Для запуска программы наберите ./main

Для подготовки программы для отладки используйте ключ “g”

gcc -g main.c -o main

Компиляция программы с множеством исходных файлов

gcc main.c a.c b.c -o multisource

Еще один вариант компиляции программы с множеством исходным файлов

gcc -c main.c

gcc -c a.c

gcc -c b.c

gcc main.o a.o b.o -o multisource

Лістинг програми

#include < stdio.h >

int main() {

for (;;) {

char name[15], command[25];

int st;

printf("Скрипт работы с процессами\n");

printf("1. Количество запущенных процессов\n");

printf("2. Завершить все процессы\n");

printf("3. Выход\n");

printf("Выберите один из пунктов:\n");

int key;

scanf("%d", & key);

switch (key) {

case 1:

printf("Введите имя пользователя:\n");

scanf("%s", name);

sprintf(command, "ps -au%s | wc -l", name);

if (fork() == 0) {

system(command);

}

wait(&st);

break;

case 2:

printf("Введите имя пользователя:\n");

scanf("%s", name);

sprintf(command, "killall -u%s", name);

if (fork() == 0) {

system(command);

}

wait(&st);

break;

case 3:

return 0;

}

}

}

Результат виконання програми

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

8

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]