Я учу медленный системный вызов и сигналы.
Для нормальной системы медленный системный вызов (считывание с терминального устройства) может блокироваться навсегда.
и ниже пример, можно прочитать тайм-аут после некоторого промежутка времени.
Но когда я извинился, Тайм-аут ничего не делает.
Я не могу понять почему.
Не могли бы вы объяснить и показать мне еще один пример медленного системного вызова?
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
static void sig_alrm(int signo){
}
int main(){
int n;
char line[50];
if(signal(SIGALRM, sig_alrm) == SIG_ERR)
printf("signal(SIGALRM) error");
alarm(1);
if((n = read(STDIN_FILENO, line, 50)) < 0)
printf("read error");
alarm(0);
write(STDOUT_FILENO, line, n);
exit(0);
}