PDA

View Full Version : [C/C++] Limitare allocazione memoria programma


fracarro
08-03-2009, 13:14
Salve ragazzi.
Vorrei chiedere agli esperti del forum se esiste un modo per fissare un limite superiore alla quantità di memoria che un programma sotto linux può allocare.

Un modo sarebbe quello di utilizzare il comando ulimit credo con l'opzione -l ( anche se non ne sono sicuro) ma a me servirebbe qualcosa di un po più raffinato.

Per intenderci, attualmente utilizzo la setrlimit all'interno del codice per far si che venga generato il segnale SIGXCPU se il programma eccede i 3600 secondi. Quando avviene ciò io catturo il segnale e mi faccio stampare tutte le info calcolate fino a quel momento dal programma e poi lo termino. Vorrei poter fare qualcosa di simile anche per la memoria. Ossia se il programma durante l'esecuzione supera i 100 MB di memoria vorrei poter generare un segnale che mi permetta di stampare le info e terminare il programma. Se non esiste un modo per generare i segnali c'è almeno un comando (non di shell ma di C o C++) che interrompa il programma quando supera i 100 MB? Grazie per l'aiuto.