调试E6应用程序的应用时重定向stdout和stderr

晨曦之光 发布于 2012/05/21 12:18
阅读 93
收藏 0
在测试E6上的应用时,在不使用telnet方式启动应用(用linux loader)时,苦于无法看到log. 采用下面的batch file可以把stdout 和 stderr重定向到文件中。
其中: 2>&1表示把stdout 和 stderr重定向到一个文件。

#!/bin/bash
. /home/native/.profile
export LD_LIBRARY_PATH=/ezxlocal/
/ezxlocal/test/fetionsdk >/mmc/mmca1/test/fetion.log 2>&1

补充知识:

1. 在 Linux 系统中,系统为每一个打开的文件指定一 个文件标识符(fd-file descriptor)以便系统对文件进行跟踪,fd 是一个数字,不同数字代表不同的含义,默认情况下,系统占用 3 个,分别是0标准输入(stdin),1 标准输出 (stdout), 2 标准错误 (stderr), 另外 3-9 是保留的标识符,可以 把这些标识符指定成标准输入,输出或者错误作为临时连接。通常这样可以解决很多复杂的重定向请求。

2. 重定向标志: fd>, 1> 可省略为>, 比如 1>或 > 表示重定向stdout, 2>表示重定向stderr
3. &fd表示也把fd重定向到...
4. cmd >t.log 2>&1 = cmd 1>t.log 2>&1 就表示把stdout 重定向到t.log,同时也把stderr重定向到stdout, 由于stdout定向到了t.log, 所以stdout和stderr都定向到t.log


原文链接:http://blog.csdn.net/swingseagull/article/details/1832672
加载中
返回顶部
顶部