Su Ubuntu e Debian questo codice mi restituisce un file vuoto perché la printf non ha effetto:
codice:
#include<stdio.h>
int main()
{
fclose(stdout);
stdout = fopen("/home/federico/provaout", "w");
printf("Prova\n");
return 0;
}
con questo la printf funziona:
codice:
#include<stdio.h>
int main()
{
int test;
fclose(stdout);
stdout = fopen("/home/federico/provaout", "w");
test = printf("Prova\n");
return 0;
}
So che per redirigere stdout si dovrebbe usare freopen ma su linux dovrebbero essere equivalenti.
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..