LINUX.ORG.RU

SIGIO и чужой терминал


0

0

Можно ли поймать SIGIO, приходящее с существующего чужого терминала?

Пример:

#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>

void SigIOhandler(int sig) {
    printf("SIGIO received\n");
}

int main() {
    int pfd;

    if ((pfd = open("/dev/pts/5", O_RDWR | O_NONBLOCK, 0666)) < 0) {
        perror("Open pseudo device");
        exit(1);
    }

    signal(SIGIO, SigIOhandler);
    fcntl(pfd, F_SETFL, O_ASYNC | O_NONBLOCK);

    sleep(10);

    close(pfd);
    return 0;
}

В этом случае при вводе/выводе в /dev/pts/5, он просто закрывается и сигнала, естественно, нет.
anonymous

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.