gpt4 book ai didi

创建运行批处理命令并将其传递给第二个 C 程序的 C 程序

转载 作者:太空宇宙 更新时间:2023-11-04 07:04:31 24 4
gpt4 key购买 nike

在此先感谢您的帮助。

我是 C 的新手,想完成以下任务。我有一个 C 程序,它接受一系列控制台输入,直到给出终止命令。例如

./myCProg  //runs myCProg in console
do this
do that
.....
quit // terminates program

我有一个包含一系列命令的文件,我想以上面给出的格式运行这些命令。我想创建第二个 C 程序,它将运行上面给出的 C 程序并将文件中的命令传递给它以加快速度。大多数情况下,我知道该怎么做。但是,我如何在第二个中运行第一个 C 程序并将命令传递给它?

最佳答案

在你的第二个程序中,用open打开输入文件进行读取。 , 然后 fork() .在 fork 进程中,使用dup2将输入文件的文件描述符复制到文件描述符 0,然后使用 exec调用第一个程序的函数。

结果是第一个程序运行时输入文件连接到它的标准输入,就像你运行 ./prog1 < input_file 一样。从命令行。

int fd = open("input_file", O_RDONLY);
if (fd == -1) {
perror("open failed");
exit(1);
}
pid_t pid = fork();
if (pid == -1) {
perror("fork failed");
exit(1);
} else if (pid == 0) {
dup2(fd, 0);
execl("/path/to/prog1", "prog1", NULL);
perror("exec failed");
exit(1);
}

关于创建运行批处理命令并将其传递给第二个 C 程序的 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34344646/

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