Originariamente inviato da adarkar
credo che venga prima scritta la "prima frase" dal tuo programma e dopo echo riapre il file in scrittura quindi troncadolo.. potrebbe essere..?

Se esegui un programma cosi':
codice:
#include <unistd.h>

int main (void)
{
    printf("Prima frase\n"); 
    sleep ( 5 );
    execlp("echo", "echo", "Seconda frase", NULL);
    exit(0); }
Passano 5 secondi da quando stampi la prima frase a quando stampi la seconda...
Se durante questi 5 secondi leggi quel file di testo non ci troverai niente scritto...

Potrebbe essere che la shell lo mantiene nel buffer... Ma allora perche' poi lo dovrebbe cancellare?