更新:我尝试打印system()
的返回值。如果ssh失败,它将返回65280,如果成功,则返回0.
我想从我的笔记本电脑ssh到另一台机器,我写了一个C程序,它访问该机器并触摸该机器上的文件。但有时网络不稳定或机器可能已关闭。因此,ssh
将失败。我怎么知道该程序中的ssh
失败了?有时ssh
到该机器成功,但触摸该文件失败,如何在C程序中区分它们?我怎么知道shell命令失败是因为ssh
失败了touch
?我不想盯着屏幕,我希望程序自动检查。
here is my code:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(int argc,const char *argv[])
{
while(1)
{
system("ssh liulyix@localhost -p 22210 'touch script/rebooter.sh'");
sleep(5);
}
}
答案 0 :(得分:1)
阅读系统的手册页。
原型类型是
{{1}}
返回值是 -1系统由于叉子故障而无法执行命令。查看execve的手册页并查看可能引发的错误号。所有这些错误都是系统返回-1的原因。
所有其他返回的ed值是命令的退出代码。 0表示成功,所有其他值表示命令与EXIT_FAILURE崩溃。
答案 1 :(得分:1)
使用函数myfunciton(){echo "hello";}
opencart22\catalog\controller\common\header.php
会更容易:
popen()