Можно ли поймать 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, он просто закрывается и сигнала, естественно, нет.
    
        Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
      
Похожие темы
- Форум locks (2014)
 - Форум Чтение выхлопа процесса без ожидания его завершения (2019)
 - Форум Системный вызов open() close() (2017)
 - Форум Help! Почему вызов ioctl FIONREAD для файла /dev/random завершается неудачей?! (2003)
 - Форум ptrace() и сигналы (2018)
 
- Форум non-blocking write (2011)
 - Форум Системный вызов sendfile ??? (2008)
 - Форум Семафоры (2005)
 - Форум вопрос по функции select (2014)
 - Форум как включить поддержку больших файлов? (2008)