Quote:
Originariamente inviato da Giullo
rispondo al punto 2:
puoi usare questa funzione per stampare a video nell'handler di un segnale:
Codice:
static void safePrint(const char *str) {
int length = strlen(str);
write(STDOUT_FILENO, str, length);
}
la spiegazione del perchè l'ho letta in un iibro sullo sviluppo c per mac, ma al momento il libro non ce l'ho sottomano e non ricordo bene  aveva a che fare cmq col fatto che printf (e malloc e altre) non è una reentrant function ( Wiki
|
Grazie mille, sostituirò le printf con la write come mi hai consigliato tu. (Il fatto che tutto l'output viene reindirizzato in un file non dovrebbe creare problemi giusto?).
Non avendo trovato una risposta alle domande 1 e 3 l'unico modo che ho di risolvere il problema è fare il meno possibile nell'handler usando funzioni sicure.