gpt4 book ai didi

c - 写入 Fortran 和 C 程序之间的管道时出现问题

转载 作者:行者123 更新时间:2023-11-30 14:28:48 25 4
gpt4 key购买 nike

我有一个由其他人用 Fortran 语言编写的程序,它会从标准输入中读取一些内容,然后进行一些计算并输出结果。我想做的是使用来 self 用 C 编写的另一个程序的不同输入数据多次运行它。为此,我使用 popen:

  FILE *pipe = popen(".\\program.exe", "wt");
if (!pipe) {
exit(1);
}

fprintf(pipe, "%d\n", thing1);
fprintf(pipe, "%d\n", thing2);
...

pclose(pipe);

问题是这种方式行不通。它与“program.exe < input.txt”完美配合,但不是这样。它读取第一件事,然后输出这个愚蠢的错误:“IO-09系统文件错误 - 未知错误”。当然,我不知道这意味着什么,因为我从未编写过 Fortran 程序。

我做错了什么?

编辑:

不幸的是我没有该程序的源代码

最佳答案

看起来应该可以,但不知道为什么不行。你确定吗 popen()在您的 Windows 机器上可用吗?我依稀记得不适用于某些 Windows 系统。你可以尝试一下简单的C程序,看看它是否是popen()或 Fortran 程序。

作为解决方法,您可以将数据写入临时文件,然后使用system(".\\program.exe < tempfile")调用 Fortran 程序。是的,这是一个拼凑。

关于c - 写入 Fortran 和 C 程序之间的管道时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554263/

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