[Openmcl-devel] timely output from an external-process-output-stream

Diedrich Wolter dwolter at informatik.uni-bremen.de
Wed Mar 23 17:03:27 UTC 2011


Hi,

the 'delay' occurs most likely since the output stream is not flushed.  
Just add the line fflush(stdout) to your C-program and your done. To  
the best of my knowledge, flushing behavior solely depends on the  
output device you write to and there's no programmatic way to change  
this (terminal devices tend to flush after \n, pipes generally don't).

> #include <stdio.h>
> int main () {
>  int i;
>  for (i=0; i<5; i++) {
>    printf("line %i\n", i);
---> fflush(stdout); <---

>    sleep(1);
>  }
>  return 0;
> }


Best,
   Diedrich

--
Diedrich Wolter
dwolter at informatik.uni-bremen.de
SFB/TR 8 Spatial Cognition, project R3-[Q-Shape]




More information about the Openmcl-devel mailing list