{
// формирование пути
char path[255];
strcpy(path, "/proc/");
strcat(path, pid);
strcat(path, "/stat");
int ch, i;
char ch1[50];
printf("\n------------------------------------------------------------\n");
printf("Файл \'%s\': Информация о процессе \n ", path);
printf("------------------------------------------------------------\n");
FILE *stream;
if ((stream = fopen(path, "r")) == NULL)
{
printf("ОШИБКА! Не удалось открыть файл\n");
return;
}
else
{
fscanf (stream, "%d",&ch);
printf ("\nИдентификатор процесса: %d\n", ch);
fscanf (stream, "%s",&ch1);
printf ("Имя исполняемого файла процесса: %s\n", ch1);
fscanf (stream, "%s",&ch1);
printf ("Сосотояние процесса: %s\n", ch1);
fscanf (stream, "%d",&ch);
printf ("Идентификатор родительского процесса: %d\n", ch);
fscanf (stream, "%d",&ch);
printf ("Идентификатор группы процессов процесса: %d\n", ch);
fscanf (stream, "%d",&ch);
printf ("Идентификатор сессии процесса: %d\n", ch);
fscanf (stream, "%d",&ch);
printf ("Терминал, используемый процессом: %d\n", ch);
fscanf (stream, "%d",&ch);
printf ("Идентификатор группы процессов процесса, владеющего tty, к которому подключен данный процесс: %d\n", ch);
fscanf (stream, "%lu",&ch);
printf ("Флаги процесса: %lu\n", ch);
fscanf (stream, "%lu",&ch);
printf ("Количество некритических страничных ошибок процесса, не требующих подгрузки страницы с диска: %lu\n", ch);
fscanf (stream, "%lu",&ch);
printf ("Количество некритических страничных ошибок процесса и его дочерних процессов: %lu\n", ch);
fscanf (stream, "%lu",&ch);
printf ("Количество критических ошибок процесса, приведших к чтению страницы памяти с диска: %lu\n", ch);
fscanf (stream, "%lu",&ch);