
Компилятор 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;
}
}
}
Результат виконання програми
Висновок: Виконавши дану лабораторну роботу, я детально ознайомився з процесами, зрозумів поняття системного виклику, а також написав програму, яка здійснює системні виклики.