2011-11-15 19 views
11

so di poter correre "ulimit -c unlimited"Attivare nucleo/crash dump programatically

Nella shell per attivare il core dump per l'utente corrente. Quello che mi chiedo è come posso fare questo programmaticamente da C?

Vedo che c'è una chiamata ulimit, ma è stata deprecata in favore di get/setrlimit. Quello che voglio sapere è qual è la chiamata equivalente a setrlimit che consentirebbe di generare i crash dump ?

+4

'setrlimit (RLIMIT_CORE, ...' – osgx

+0

Doh, fidati di me di leggere attraverso la pagina man troppo in fretta RLIMIT_CORE è quello che mi mancava applausi... – Matt

risposta

17

Ho trovato una soluzione funzionante. I file core sono ora in fase di creazione.

struct rlimit core_limit; 
core_limit.rlim_cur = RLIM_INFINITY; 
core_limit.rlim_max = RLIM_INFINITY; 

if (setrlimit(RLIMIT_CORE, &core_limit) < 0) 
    fprintf(stderr, "setrlimit: %s\nWarning: core dumps may be truncated or non-existant\n", strerror(errno)); 

credito va qui: http://adamrosenfield.com/blog/2010/04/23/dumping-core/