2013-02-07 8 views
5

Voglio sapere se è possibile in Linux e C scoprire che l'output del mio programma viene reindirizzato su un file. voglio formattare l'output leggibile quando viene stampato su stdout $ ./myprogram e come CSV quando viene reindirizzato a un file $ ./myprogram >> data.csvScoprire che l'output del mio programma viene reindirizzato in un file

È posible?

+0

Domanda interessante. Forse con l'argv/argc di main()? – Burkhard

risposta

10

È possibile utilizzare la funzione isatty per questo:

if (isatty(STDOUT_FILENO)) 
{ 
    /* Standard out is an interactive terminal */ 
} 
else 
{ 
    /* Standard out is something else (pipe, file redirect, etc.) */ 
} 
+0

grazie, 'if (isatty (fileno (stdout))) {è un terminale} else {è un file};' :) – microo8

Problemi correlati