Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] redirezione stdout con fopen

    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..

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    93
    Ciao,

    non scrivo per risponderti sul motivo di questo comportamento (sarei curioso anch'io di capire come mai), ma per dirti, se per caso non lo sai già, che puoi usare fprintf.

    Ciao

  3. #3

    Re: [C] redirezione stdout con fopen

    Originariamente inviato da printfede
    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..
    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.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.