Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    52

    Rindirizzamento dell'output in C

    Ciao io dovrei rindirizzare i risultati del comando system()su file. La soluzione sembrava essere ridirigere lo stdout con la freopen(.,.,.) ma la cosa nn funziona... avete qualche idea di come possa fare??

  2. #2
    PER ESEMPIO:

    system("TYPE file_origine.txt >> file_destinazione.txt");

    /*

    redirige l'output (cioè il contenuto di file_origine
    in file_destinazione, invece che nello stdout, cioè il video).

    */
    ...Terrible warlords, good warlords, and an english song

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    52
    :mavieni:
    ottimo funziona!!
    cmq mi rimarra sempre il dubbio del perche' con la freopen l'uscita della system nn veniva rindirizzata..

  4. #4
    codice:
    fclose( stdout );
    stdout = fopen( "tuo_output", "w+" );
    system( "programma" );
    Che e` uguale a:

    codice:
    stdout = freopen( "tuo_output", "w+", stdout );
    system( "programma" );

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    52
    Io ho provato la seconda soluzione (quella con freopen)ma nn va!!!
    con la stdout= davanti mi da errore e senza mi rindirizza i printf ma il comando system va su video...

  6. #6
    All`inizio non convinceva neanche me l`idea che anche con system() andasse invece di exec*(), pero` ripensandoci i descrittori dovrebbero essere ereditati dal processo padre. Che intendi per:

    con la stdout= davanti mi da errore
    ???

    D`altra parte se non fai l`assegnazione e` normale che l`output non venga redirezionato. :quipy:

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    52
    cosa intendi per exec*();
    cmq intendevo dire che ho provato stdout = freopen() e mi da errore su stdout = mentre se nn lo metto mi reidirizza lo stdout per le printf ma non per la system...

  8. #8
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    Allora fopen e fropen restituiscono un puntatore a FILE se tu scrivi stdout=fopen ecc
    stdout ricevera il valore restituito da fopen o freopen. E' un reindirizzamento.
    Giusto o ho detto qualke caxxata r0x?

  9. #9
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    Ah per exec non so dirti forse è una funzione C++. Io non la conosco!!!
    CIao

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    52
    questo :quote: e' quello che pensavo anch'io ma mi da errore... quindi c'e qualcosa che nn va!!!!!!!!!!!!!!!!!!!!!!!!!!!:sexpulp:

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.