【发布时间】:2019-09-26 07:10:41
【问题描述】:
我正在尝试建立与远程服务器的 SSH 连接以执行某些命令。我需要在我的最终程序中使用 CLA,所以我试图从命令提示符执行。给出了示例代码
#include <stdio.h>
#define PATH_MAX 128
int main(void){
FILE *fp;
char path[PATH_MAX];
fp = popen("ssh user@HOST \"command\"", "r");
if (fp == NULL)
/* Handle error */;
while (fgets(path, PATH_MAX, fp) != NULL)
printf("%s", path);
fclose(fp);
return 0;
}
代码使用 DevC++ 执行良好,但是当我从命令提示符执行相同操作时,它不执行给出以下消息“'ssh' 不被识别为内部或外部命令, 可运行的程序或批处理文件。" 我尝试了 system("some command") 和 popen()。两者在 DevC 中都可以正常工作,但在从命令提示符执行时会给出相同的消息。 我正在安装 MinGW gcc 版本 8.2.0 (MinGW.org GCC-8.2.0-3)
【问题讨论】:
-
这不是您的程序的问题,而是
%PATH%环境变量的问题。 -
ssh安装在哪里?是在Windows系统PATH吗? -
所以程序运行良好,而您只是寻求在 Windows 上运行 ssh 的帮助?这是一道编程题?
-
我检查了路径变量,它已经存在 *C:\Windows\System32\OpenSSH*。事实上,如果我直接进入命令提示符并建立/运行 SSH 连接,它工作正常。我面临的唯一问题是尝试通过命令提示符中的 C 程序执行相同操作。