在Tornado或VXWorks环境中,重定向shell输出的方法如下:
sys.stdout
和sys.stderr
来重定向标准输出和标准错误输出。例如,将输出重定向到一个文件:import sys
class Logger(object):
def __init__(self, filename):
self.stdout = sys.stdout
sys.stdout = self
self.logfile = open(filename, 'w')
def write(self, data):
self.stdout.write(data)
self.logfile.write(data)
def flush(self):
pass
logger = Logger('output.log')
iosDevCreate()
和iosDevRedirect()
函数来重定向输出。例如,将输出重定向到一个串口设备:#include <vxWorks.h>
#include <ioLib.h>
void redirectOutput(int deviceId)
{
int stdioFd = iosDevCreate("/tty", deviceId, 0, 0);
iosDevRedirect(stdioFd, IOS_STDOUT);
iosDevRedirect(stdioFd, IOS_STDERR);
}
os.dup2()
函数来重定向输出。例如,将输出重定向到一个文件:import os
logfile = open('output.log', 'w')
os.dup2(logfile.fileno(), 1) # 重定向标准输出
os.dup2(logfile.fileno(), 2) # 重定向标准错误输出
推荐的腾讯云相关产品:
领取专属 10元无门槛券
手把手带您无忧上云