Вивчення основних команд операційної системи Linux. Вивчення файлової системи процесів /proc. Вивчення роботи «демонів». Програма «клієнт-сервер»
19

{

    // формирование пути

    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);