I think this is standard glibc magic when using the normal buffered fread/fwrite functions. There are ways to disable it within the program e.g. in perl: $| = 1