c - 无法使用命令提示符执行 SSH\

标签 c linux ssh popen

我正在尝试与远程服务器建立 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)

最佳答案

所以看起来即使所需的路径存在于系统变量下,但是程序还是在用户变量下执行。因此,只需在用户变量下添加相同的路径(即 C:\Windows\System32\OpenSSH)即可解决问题。

关于c - 无法使用命令提示符执行 SSH\,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58111338/

相关文章:

objective-c - 使用大量值初始化数组和字典

c - 构建 makefile 依赖/继承树

linux - 签署虚拟盒模块(vboxdrv、vboxnetflt、vboxnetadp、vboxpci)Centos 8

ssh - 连接到系统 : neovim inside tmux inside ssh

c - 像 Matlab 在 C 中那样读取原始音频文件

c - 我的 URI Online Judge 中第 1021 号问题(初学者)的代码有什么问题?

c++ - 更快地获取Linux中包含500万个文件的目录所占用的总空间的方法

java - 检测 Windows 还是 Linux?

python - ssh 使用 Python 限制命令

ssh:通过远程服务器到另一台服务器的隧道