gpt4 book ai didi

c - 使用 scp 和 sshpass 处理错误情况

转载 作者:行者123 更新时间:2023-11-30 19:31:16 25 4
gpt4 key购买 nike

我正在尝试实现用于文件传输的命令行接口(interface)命令,这将在内部调用

sshpass -p "password" scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -r user@remote-machine:/home/QA.txt /home/faadmin/

当我使用system()运行此命令时,错误处理没有正确发生。如果路径不存在用于文件传输,或者文件未找到错误,有时它们会阻止执行CLI 命令。所以执行上述 Linux 命令后,我检查了返回值,未显示除 0 和 1 以外的值。如何获取其他返回值?

最佳答案

您应该使用popen(),因为system()返回值会告诉您命令是否已执行。例如:

#include <stdio.h>

void main(void)
{
FILE *output = NULL;
char text[2048];
char cmd[256];

sprintf(cmd, "%s", "sshpass -p \"password\" scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -r user@remote-machine:/home/QA.txt /home/faadmin/");

output = popen(cmd, "r");

while(fgets(text, 1024, output) != NULL)
printf("%s", text);

pclose(output);
}

关于c - 使用 scp 和 sshpass 处理错误情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49136993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com