Ciao a tutti. Ho provato a scrivere un programma ma volevo salvare su file il risultato di ciò che veniva scritto su stdout da una chiamata a sistema system().
Ho provato collegando a stdout a un altro file prima della chiamata a system() ma poi subito dopo voglio ricollegarlo allo stream standard, come posso fare?
Ho provato con un puntatore a FILE* a copiare stdout ma non fa quello che dovrebbe.

Vi posto il codice.
Codice PHP:
/*
 *  ls.c
 *  
 *
 *  Created by Tommaso Ricci on 09/05/11.
 *  Copyright 2011 __MyCompanyName__. All rights reserved.
 *
 */


#include <stdio.h>

int main(int argcchar *argv[]) {
    
    
FILE *stdo1;
    
char nome[] = "prova.txt";
    
    
stdo1 stdout;
    
freopen(nome"w"stdout);
    
    
system("ls");
    
stdout stdo1;
    
printf("%s"nome);
    
    return 
0;
    

Il problema è che la printf (la invoco per provare che lo stream torni quello standard) continua a scrivere su prova.txt e non sullo stream standard anche dopo questo mio tentativo (fallito) di rimetterlo a posto.