这两天遇到个很奇怪的事,是在android中将可执行文件的printf信息重定向到文本文件,系统会每每缓冲4k左右的内容才往文件里输出,直接在shell中执行是可以得到实时信息的,而且不止getevent,其他命令也会有相同的情况,我需要在重定向之后也能得到实时的信息,感请各位前辈指点,感激不尽……Androidshell日志重定向缓存实时日志

解决方案 »

  1.   

    这个确定不是应为显示延迟,自己写了测试程序,在printf之后调用fflush(stdout)能够得到实时的信息,可参考:
    http://blog.csdn.net/melanie327/article/details/8275909
    http://womeikongya.blog.163.com/blog/static/58599220201011215143125/问题是第三方命令已经编译好了不能再修改,所以有没有办法禁用这个缓冲区或者使用其他方式flush目标命令的缓冲区呢?
      

  2.   

    http://blog.csdn.net/silyvin/article/details/8281342http://www.cnblogs.com/Anker/archive/2012/12/25/2832568.htmlhttp://www.51testing.com/?uid-292219-action-viewspace-itemid-821656Code: 
    #ifdef HAVE_POSIX_OPENPT 
    int fd = posix_openpt(O_RDWR); 
    #else 
    int fd = open("/dev/ptmx", O_RDWR); 
    #endif //HAVE_POSIX_OPENPT纠结两天多,问题解决,‘伪终端’  
      

  3.   

    能不能教一下怎么实时拿到getevent的log的   我对C 不熟  感激不尽