Ciao, lo sapevo già grazie, credimi ho fatto tante prove sulla cosa e ancora non sono giunto a nessuna conclusione, ho chiesto in diversi forum e nessuno mi ha saputo dare una risposta soddisfacente, mi chiedo se non possa essere un bug, di gcc ad esempio. Grazie comunque per l'interessamento ciao.Originariamente inviato da printfede
Su Ubuntu e Debian questo codice mi restituisce un file vuoto perché la printf non ha effetto:
con questo la printf funziona:codice:#include<stdio.h> int main() { fclose(stdout); stdout = fopen("/home/federico/provaout", "w"); printf("Prova\n"); return 0; }
So che per redirigere stdout si dovrebbe usare freopen ma su linux dovrebbero essere equivalenti.codice:#include<stdio.h> int main() { int test; fclose(stdout); stdout = fopen("/home/federico/provaout", "w"); test = printf("Prova\n"); return 0; }
Ma ciò che non capisco è come mai assegnando semplicemente il risultato della printf a test la stringa venga scritta mentre non assegnandolo NO! Mi sembra assurdo..