[devel] system(3) blocks alarm(2) under strace(1)
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Ср Июн 23 12:39:37 MSD 2004
Столкнулся в перле, но воспроизводится без всякого перла.
$ gcc alarm.c
$ ./a.out
diff=3 seconds
$ strace -o /dev/null ./a.out
diff=3 seconds
$ strace -f -o /dev/null ./a.out
diff=6 seconds
$
В чем здесь секрет?
----------- следующая часть -----------
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>
#include <time.h>
time_t start_time, alarm_time;
void alarm_handler(int signo)
{
alarm_time = time(NULL);
}
int main()
{
start_time = time(NULL);
signal(SIGALRM, alarm_handler);
alarm(3);
system("sleep 6");
printf("diff=%d seconds\n", alarm_time - start_time);
return 0;
}
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20040623/298d1077/attachment-0001.bin>
Подробная информация о списке рассылки Devel