[ --ja-- @ 04.10.2006. 16:04 ] @
Kôd je slijedeći:
Code:
#include <stdio.h>

int main(void) {
   int a;
   for (a=1; a<=10; a++) {
      sleep(1);
      printf("Red %d\n", a);
   }
   return 0;
}


Citat:
bash-2.03$ ./proba
Red 1
Red 2
Red 3
Red 4
Red 5
Red 6
^\Quit (core dumped)
bash-2.03$


Zašto se dešava ovaj core dump kad pošaljem 'CTRL+\' tj. SIGQUIT?
Zahvaljujem!
[ rumpl @ 04.10.2006. 22:21 ] @
Gledaj man bash
I trazi ulimit.
[ --ja-- @ 04.10.2006. 22:56 ] @
Ma jasno je meni kako spriječiti ovu pojavu. Čak je lakše samo napraviti folder 'core' i prestat će dumpovati. Ali moje pitanje glasi: Zašto se ovo dešava?
[ chupcko @ 05.10.2006. 10:45 ] @
Pravi odgovor je iz man 7 signal:

Posto si ti poslao ctrl+\ otisao je signal QUIT, a u man strani kaze:

Code:

...
       SIGHUP        1       Term    Hangup detected on controlling terminal
                                     or death of controlling process
       SIGINT        2       Term    Interrupt from keyboard
       SIGQUIT       3       Core    Quit from keyboard
       SIGILL        4       Core    Illegal Instruction
       SIGABRT       6       Core    Abort signal from abort(3)
...


Eto zato coruje :).
[ --ja-- @ 05.10.2006. 11:02 ] @
Ah hvala. Problem rješava
Code:
#include <signal.h>
...
...
signal(SIGQUIT, SIG_DFL);
...

[ chupcko @ 05.10.2006. 20:27 ] @
Po mom stavu, generalno ti i nisi imao problem :), vecina ostalih programa se isto ponasa na taj nacin :)

Code:

[desktop] 0 /home/chupcko => limit coredumpsize unlimited
[desktop] 0 /home/chupcko => cat 
Quit (core dumped)
[desktop] 131 /home/chupcko => ls -la core 
-rw-------  1 chupcko users 278528 Oct  5 21:19 core


(Shell je tcsh :))) )