Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба4f.doc
Скачиваний:
33
Добавлен:
03.05.2015
Размер:
137.22 Кб
Скачать

Выполнение Получение информации о процессе

Для получения информации о процессе используем следующий код

#include<stdlib.h> /*подключение стандартной библиотеки */

#include <sys/resource.h> /*подключение файла с идентификаторами ресурсов*/

int main(int arge, char **argv, char **cnv)

{

printf("\n Process Informaition: \ n");

printf("Process name = \t \t %s \n", argv[0]);

printf("User ID = \t \t < %d > \n", getuid(0));

printf("Effective User ID = \t< %d >\n", geteuid(0));

printf("Group ID = \t \t < %d > \n", getgid(0));

printf("Effective Group ID = \t < %d > \n", getegid(0));

printf("Process Group ID = \t < %d > \n", getpgid(0));

printf("Process ID ( PID )= \t < %d > \n", getpid(0));

printf("Parent PI D ( PPI D ) = \t< %d > \n", getppid(0));

printf("Process priori t y = \t < %d > \n", getprio(0));

return EXIT_SUCCESS; /* возвращаем значение успешного завершения программы */

}

Функция printf()является функцией стандартного вывода. С помощью этой функции можно вывести на экран монитора строку символов, число, значение переменной.

Функция printf() это функция форматированного вывода. Это означает, что в параметрах функции необходимо указать формат данных, которые будут выводиться. Формат данных указывается спецификаторами формата. Спецификатор формата начинается с символа % за которым следует код формата.

Спецификаторы формата:

символ

%d

целое десятичное число

%i

целое десятичное число

%e

десятичное число в виде x.xx e+xx

%E

десятичное число в виде x.xx E+xx

%f

десятичное число с плавающей запятой xx.xxxx

%F

десятичное число с плавающей запятой xx.xxxx

%g

%f или %e, что короче

%G

%F или %E, что короче

%o

восьмеричное число

%s

строка символов

%u

беззнаковое десятичное число

%x

шестнадцатеричное число

%X

шестнадцатеричное число

%%

символ %

%p

указатель

%n

указатель

Например, если команда :

printf("%d",20); выводит результат: 20

Кроме спецификаторов формата данных в управляющей строке могут находиться управляющие символы:

\f

Новая страница, перевод страницы

\n

Новая строка, перевод строки

\r

Возврат каретки

\t

Горизонтальная табуляция

\v

Вертикальная табуляция

\"

Двойная кавычка

\'

Апостроф

\\

Обратная косая черта

\0

Нулевой символ, нулевой байт

\a

Сигнал

\N

Восьмеричная константа

\xN

Шестнадцатеричная константа

\?

Знак вопроса

Чаще всего используется символ \n. С помощью этого управляющего символа вы сможете переходить на новую строку.

Пример программы.

#include <stdio.h>

void main(void)

{

printf("Здравствуйте!\n"); // После печати будет переход на новую строку - \n

printf("Меня зовут Павел."); // Это будет напечатано на новой строке

}

Результат работы программы:Здравствуйте! Меня зовут Павел.

Для вывода данных о процессе используются функции: argv() getuid() geteuid() getgid() getegid() getpgid() getpid() getppid() getprio(), а в качестве аргумента передается 0 – идентификатор процесса самой программы.

Жизненный цикл процесса можно разделить на четыре этапа:

  • создание процесса

  • загрузка образа процесса;

  • выполнение процесса.

  • завершение процесса