我该如何处理C中的_popen()错误?

问题描述 投票:0回答:1

早上好;现在,我正在编写一个程序,该程序对物理过程进行蒙特卡洛模拟,然后将生成的数据通过管道传输到gnuplot以绘制图形表示。模拟和绘图工作正常。但我有兴趣打印一条错误消息,该错误消息通知用户未安装gnuplot。为了解决这个问题,我尝试了以下代码:

#include <stdio.h>
#include <stdlib.h>
FILE *pipe_gnuplot;
int main() 
{
    pipe_gnuplot = _popen("gnuplot -persist", "w");
    if (pipe_gnuplot==NULL)
    {
        printf("ERROR. INSTALL gnuplot FIRST!\n");
        exit (1);
    }
    return 0;
}

但是,不是打印我的错误消息,而是出现了“ gnuplot无法识别为内部或外部命令,可操作程序或批处理文件”(该程序在Windows上运行)。我不明白我在做什么错。根据_popen文档,如果管道打开失败,则应返回NULL。您能帮我解决这个问题吗?在此先感谢,如果问题很基本,请原谅。

c windows pipe popen
1个回答
0
投票

我想gnuplot未添加到PATHWindows中。因为_popen documentation说:

FILE *_popen(
    const char *command,
    const char *mode
);

参数

命令要执行的命令。

并且您将gnuplot -persist作为命令传递,并且错误提示找不到gnuplot

尝试打印环境变量以查看是否存在。

© www.soinside.com 2019 - 2024. All rights reserved.