I was trying to use the Xenomai RT-Socket-CAN rtcanrecv in a Tcl/Tk
script GUI wrapper.
rtcanrecv uses printf to stdout, and it line-buffers when attached to a
tty, but it uses larger buffers (so it is unusable) when run from a
script with no tty.
Tcl does stdio with pipes rather than ptys (that is, Tcl thinks it has
no tty for stdio). I think both bash and perl use ptys (and so don't
have this problem). I haven't done a more thorough survey, but that's
not the point.
I think it would be nice to modify rtcanrecv so it can write stdout in
line-buffered mode. If you think this is a good idea, please either set
line buffering with
setvbuf(stdout, NULL, _IOLBF, 0);
at the top of src/utils/can/rtcanrecv.c:rt_task() or
fflush(stdout);
after the printf("\n") at the bottom of rt_task(), or you could add a
command line getopt option for line-buffering that would do one of the
above.
-Andy
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help