gpt4 book ai didi

c - 如何将输入发送到 C 中的进程?

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

我正在尝试从 C: 运行 git push

system("git push");

当它要求时

username:
password:

我想还给它一个用户名和一个 github 授权 token 。我将如何做到这一点?我试图四处寻找解决方案,但当我用谷歌搜索这个问题时,我似乎无法找到正确的措辞。请注意,我将用户名和身份验证 token 存储在 char* 中:

char *username = "whatever";
char *token = "whatever";
system("git push");

最佳答案

如果进程是使用 system(char *command); 创建的,则不可能将输入数据发送到进程(或者也许是可能的,但我认为太难了),你需要创建使用 popen(const char *command, const char *type); 的新进程。 (popen documentation here)。这是我写的一个小例子:

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

int main(int argc, char **argv)
{
char username[] = "something";
char password[] = "something";
FILE *pf; // file descriptor of the git process

pf = popen("git push", "w"); // create git process in write mode

if (!pf) {
printf("Process couldn't be created!");
return 1;
}

// this will send username and password (and the '\n' char too) to the git process
fputs(username, pf);
fputs(password, pf);
pclose(pf); // close git process

return 0;
}

关于c - 如何将输入发送到 C 中的进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31397208/

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