problem piping stdout
Dave Korn
dave.korn@artimi.com
Sun Oct 1 14:44:00 GMT 2006
On 01 October 2006 14:34, Owen Lucas wrote:
> Im doing a program that reads in stuff from the serial port under linux.
> Once read in there is a bit of formatting and it then needs to get piped
> to something else. At the end is the cut down code.
This is a question for the gcc-help list, not the main gcc list, which is
about programming the internals of the compiler itself. Please send
follow-ups there.
> while (1)
> {
> // read(fd,buf,50);
> printf("hello world\n");
> }
> now if the read(fd,buf,50); line is uncommented, it now only does
> printf("hello world\n") everytime a CR is reciveded on the serial port
> which terminates the read function (as it should). Now it displays to
> screen (as it should) but it does NOT pipe to file with ./a.out >
> test.txt. It creates a blank file but doesnt put anything in it. Why does
> a read function unrelated to STDIN or STDOUT in the code muck up a linux
> pipe?????? Got be baffled and dont know what to do now.
Something's gone funny with the stdout buffering. Maybe related to ICANON.
Try adding a fflush (stdout) after the printf.
cheers,
DaveK
--
Can't think of a witty .sigline today....
More information about the Gcc
mailing list