gpt4 book ai didi

c - 使用 C 与 Shell 交互

转载 作者:太空狗 更新时间:2023-10-29 12:02:41 26 4
gpt4 key购买 nike

我有一个名为 TEST 的二进制文件,它生成一个 bash shell,我希望编写一个运行 TEST 的 C 程序,然后将命令传递给它生成的 bash shell - 我已经尝试了以下 - 有人可以指出这是不是可能的。我可以使用运行该文件,但不知道如何将命令传递给它生成的 shell:

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

int main()
{
system("/var/testfolder/TEST"); #run the test file
return 0;
}

最佳答案

UNIX 风格 popen () 函数是你想要使用的。有关详细信息,请参阅手册页。

它在子进程中运行您的命令,并为您提供与之交互的管道。它像 fopen() 一样返回一个 FILE 句柄,但您使用 pclose() 而不是 fclose() 关闭它。否则,您可以使用与文件流相同的方式与管道交互。非常易于使用和有用。

这是一个 link to a use case例子

另请查看此示例,该示例说明了执行您尝试执行的操作的方法:

#include <stdio.h>

int main(void) {
FILE *in;
extern FILE *popen();
char buf[512];

if (!(in = popen("ls -sail", "r")))
exit(1);

while (fgets(buf, sizeof(buf), in) != NULL)
printf("%s", buf);

pclose(in);
}

关于c - 使用 C 与 Shell 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29199343/

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