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

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

    printf ("Количество страниц записанных на устройство подкачки: %lu\n", ch);

    fscanf (stream, "%lu",&ch);

    printf ("Сумма nswap для всех подпроцессов: %lu\n", ch);

    fscanf (stream, "%d",&ch);

    printf ("Сигнал, который будет послан родительскому процессу при завершении работы: %d\n", ch);

    fclose(stream);

    }       

}

 

void PrintProcInfo(char * pid)

{

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

    char path[255];

    strcpy(path, "/proc/");

    strcat(path, pid);

    strcat(path, "/cmdline");

    char buffer[1000];

    FILE *stream;

 

    printf("\n------------------------------------------------------------\n");

    printf("Файл \'%s\': Командная строка запуска процеса \n ", path);

    printf("------------------------------------------------------------\n");

    if ((stream = fopen(path, "r")) == NULL)

    {

        printf("ОШИБКА! Не удалось открыть файл!\n");

        return;

    }

    else

    {

        // чтение содержимого файла в буфер

    int ch = 0, i = 0;

    ch = fgetc(stream);

    for (i; feof(stream) == 0; i++)

    {

        buffer[i] = (char) ch;

        ch = fgetc(stream);

    }