有时需要关闭stdin、stdout、stderr

来源:互联网 发布:smtp ssl 端口 编辑:程序博客网 时间:2024/05/17 03:54

    最近在测试程序的时候,发现了一个比较怪异的问题。在linux、ARM9平台下使用COM0口连接GPS模块,从中读取时间信息。因为COM0口是系统控制台,所以必须先释放其资源才能对串口进行设置。当一切都准备好后,启动程序,发现程序速度明显变慢!经过调试,发现是当设置串口波特率就会导致程序执行速度变慢,但是又不可能不对串口进行设置。最后采用了死马当活马医的办法,关闭了stdin、stdout、stderr三个标准输入、输出、出错后,结果程序速度恢复正常。我的看法是:标准输入、输出、出错会和gps模块在COM0口产生竞争,导致程序运行变慢,当关闭了标准输入、输出、出错,GPS模块独享COM0口,边恢复正常。不知我的理解是否正确?暂时就这么解决了问题,背后的原理再慢慢探索吧!

原创粉丝点击