gpt4 book ai didi

c - 如何使用 C 程序在命令提示符下传递命令?

转载 作者:太空宇宙 更新时间:2023-11-04 09:52:10 27 4
gpt4 key购买 nike

我想从我的 C 程序中传递一些命令,这是示例程序:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(){

FILE *ssh = popen("ssh user@192.168.170.155", "w");

pid_t pid;
pid = fork();


if(!ssh)
{
fprintf(stderr, "Could not open pipe for output.\n");
}

if (pid==0){

fprintf(stdout, "Child process properly created.\n");
fputs("user", ssh);
fputc('\n', ssh); // enter key
_exit(0);
}


fprintf(stdout, "Exit from child process.\n");
pclose(ssh);

return 0 ;

}

现在当我运行这个程序时,它会在命令提示符下要求输入密码,如下所示:

user@192.168.170.155's password:

我想从示例程序而不是命令提示符传递密码。谁能告诉我如何在 C 中以编程方式执行此操作。

SSH只是举例,其他场景也可以。

谢谢, Jade 薇

最佳答案

我认为 ssh 命令从其 stdin 读取密码,在这种情况下,您需要将密码通过管道传输到程序中,为此您可以使用popen . C99/POSIX 示例:

#include <stdio.h>

int main()
{
FILE *ssh = popen("ssh user@host", "w");

fputs("p4ssw0rd", ssh);
fputc('\n', ssh); // enter key

pclose(ssh);
}

未经测试。结合使用 fork/exec/dup 等,你可能会有更好的运气。

关于c - 如何使用 C 程序在命令提示符下传递命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9735056/

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