当前位置: 技术问答>linux和unix
在unix程序中调用remsh,如何知道remsh运行成功呢?
来源: 互联网 发布时间:2015-06-21
本文导语: 环境:HP UNIX 语言:C++ 情况描述: 编一程序,其中用到用system(),来调用remsh,代码如下: string command = "remsh remhost cd /work/test/xx"; int ret = system(command.c_str()); 其中在远端remhost主机上的目录/...
环境:HP UNIX
语言:C++
情况描述:
编一程序,其中用到用system(),来调用remsh,代码如下:
string command = "remsh remhost cd /work/test/xx";
int ret = system(command.c_str());
其中在远端remhost主机上的目录/work/test/xx 是不存在的,即command应该运行不成功,但system返回值为0,表示成功。
不用程序运行该command ,而在unix sh命令界面中直接敲remsh remhost cd /work/test/xx,sh是有错误信息返回的。
所以试解决方法一:
不用system(),改用popen(),将命令的所有输出定向到一个文件,结果文件中什么内容也没有。
在unix sh命令界面中直接敲remsh remhost cd /work/test/xx > test.out,结果错误信息仍然是在界面返回的,test.out是空文件,这是怎么回事呢?
请问我在程序中如何才能得到该返回结果,程序是在后台运行的。
如果我在后台运行程序时,sh抛出错误信息是抛出在哪呢?是stderr吗?谢谢!
语言:C++
情况描述:
编一程序,其中用到用system(),来调用remsh,代码如下:
string command = "remsh remhost cd /work/test/xx";
int ret = system(command.c_str());
其中在远端remhost主机上的目录/work/test/xx 是不存在的,即command应该运行不成功,但system返回值为0,表示成功。
不用程序运行该command ,而在unix sh命令界面中直接敲remsh remhost cd /work/test/xx,sh是有错误信息返回的。
所以试解决方法一:
不用system(),改用popen(),将命令的所有输出定向到一个文件,结果文件中什么内容也没有。
在unix sh命令界面中直接敲remsh remhost cd /work/test/xx > test.out,结果错误信息仍然是在界面返回的,test.out是空文件,这是怎么回事呢?
请问我在程序中如何才能得到该返回结果,程序是在后台运行的。
如果我在后台运行程序时,sh抛出错误信息是抛出在哪呢?是stderr吗?谢谢!
|
stderr在有些sh情况下不能使用>来重新定向,建议
man一下你的sh环境,再进行错误输出重定向。
man一下你的sh环境,再进行错误输出重定向。
|
man system函数.