Quindi questa è probabilmente una domanda stupida, ma non riesco a vedere cosa sto facendo male.reindirizzamento output produce file vuoto
Sto eseguendo un programma che produce output quando viene chiamato come ./ar
. L'output è simile a:
-0.00781 0.02344 0.98828
-0.01172 0.02734 0.98828
-0.01562 0.02344 0.98047
-0.00781 0.02344 1.00000
-0.00391 0.02344 0.98438
Una nuova riga di output viene scritta ogni secondo.
Quando chiamo il codice ./ar > log
e il programma si interrompe utilizzando ctrl-c
dopo alcuni secondi, il file log
è vuoto.
Sto eseguendo questo codice su un sistema incorporato. Il sistema ha una partizione scrivibile che è la partizione in cui sto correndo, e ho accesso in scrittura poiché sono registrato come root.
Quando si effettua il reindirizzamento, l'output è protetto da blocchi, non bufferizzato dalla linea. Se premi Ctrl-C prima che un blocco sia pieno, non viene scritto nulla nel file. Puoi usare 'fflush (stdout)' per farlo scrivere immediatamente sul file. –
Grazie, che ha risolto il mio problema, ho dovuto eseguire questa riga prima di ogni istruzione printf. – James
Farlo dopo il 'printf' è più naturale. –