O comportamento de
printf()
parece depender da localização destdout
.
- Se
stdout
for enviado para o console,printf()
será armazenado em buffer de linha e será liberado depois que uma nova linha for impressa.- Se
stdout
for redirecionado para um arquivo, o buffer não será liberado, a menos quefflush()
seja chamado.- Além disso, se
printf()
for usado antes destdout
ser redirecionado para o arquivo, as gravações subseqüentes (no arquivo) serão armazenadas em buffer de linha e serão liberado após a nova linha.
Fonte: Por que a stdout precisa flushing explícito quando redirecionado para o arquivo?
Eu não sou bem versado em programação C, mas aparentemente você precisa adicionar fflush(stdout);
após cada instrução printf
. Experimente da linha de comando. Se funcionar, deve funcionar com o cron.
Mais perguntas sobre este tópico: