J'apprends des appels et des signaux système lents.
Pour le système normal, l'appel système lent (lu depuis le terminal) peut bloquer indéfiniment.
et ci-dessous l'exemple, il est possible de lire pour expirer après un certain laps de temps.Relation entre un appel système lent et un signal
Mais quand je l'ai excuté, le temps mort ne fait rien.
Je ne comprends pas pourquoi.
Pourriez-vous m'expliquer et me montrer un autre exemple d'appel système lent?
#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);
}