当前位置: 技术问答>linux和unix
linux下应用程序stdout或printf重定向问题
来源: 互联网 发布时间:2016-10-20
本文导语: 使用嵌入式linux,通常需要printf打印调试信息,在使用shell终端的情况下很容易实现,但在成品中是不需要consle终端的,这时候调试很麻烦, 怎么样在应用程序空间直接可以使用printf函数啊,我知道需要重定向,但好...
使用嵌入式linux,通常需要printf打印调试信息,在使用shell终端的情况下很容易实现,但在成品中是不需要consle终端的,这时候调试很麻烦,
怎么样在应用程序空间直接可以使用printf函数啊,我知道需要重定向,但好像不行
比如,串口是/dev/ttyS3
fd = open(port, O_RDWR|O_SYNC|O_NOCTTY);//argv[1] is device name!
一些基本的文件打开就不写了
重定向:
dup2(fd,0);
dup2(fd,1);
dup2(fd,2);
把stdin,stdout,stderr都定向到fd即ttyS3中,
按理说printf内容直接可以在串口输出,但是串口没有数据
why
怎么样在应用程序空间直接可以使用printf函数啊,我知道需要重定向,但好像不行
比如,串口是/dev/ttyS3
fd = open(port, O_RDWR|O_SYNC|O_NOCTTY);//argv[1] is device name!
一些基本的文件打开就不写了
重定向:
dup2(fd,0);
dup2(fd,1);
dup2(fd,2);
把stdin,stdout,stderr都定向到fd即ttyS3中,
按理说printf内容直接可以在串口输出,但是串口没有数据
why
|
open() 有没有问题啊? 那个port对不对?
按理说可以吧。
按理说可以吧。