----- test.c ------
#include <stdio.h>
#include <unistd.h>
int main() {
printf("aaaaaa\n");
while(1) {
printf("b");
sleep(1);
}
return 0;
}
---------
$>gcc test.c
$>./a.out
aaaaaa
si ramane asa... nu mai apare nici un b pe ecran!
$>strace ./a.out
[...] - aici apar mai multe chestii aparent neinteresante si apoi
write(1, "aaaaaa\n", 7aaaaaa
) = 7
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
nanosleep({1, 0}, {1, 0}) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
nanosleep({1, 0}, {1, 0}) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
nanosleep({1, 0}, <unfinished ...>
l-am omorat cu un ctrl+c
deci el totusi doarme cate o secunda, dar considera neimportant sa mai
si arunce un b pe ecra!
daca, in schimb, pun un return 1; dupa sleep() se intampla ceva foarte
interesant... apar a-urii, sta o secunda, _apoi_ apare un b si iese!
simt ca-mi fuge pamantul de sub picioare!
ajutoooor...
multumiri!!!!!!!
---
Detalii despre listele noastre de mail: http://www.lug.ro/