You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用system()从C程序运行Python程序无输出问题求助

问题分析与解决方案

你的代码核心问题是文件写入后未关闭流,导致fprintf的内容还停留在内存缓冲区,没有真正写入磁盘。当system调用Python执行文件时,读取到的可能是空文件,因此没有输出。另外代码中重复声明system函数是多余的,<stdlib.h>已经包含了它的原型。

修复步骤

  • 写完文件后必须调用fclose(pfile),强制将缓冲区内容刷入磁盘。
  • 移除多余的system函数声明。
  • 增加文件打开的错误检查,避免空指针操作导致程序崩溃。

修复后的代码

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

int main() {
    FILE *pfile = fopen("execute.py", "w");
    if (pfile == NULL) {
        perror("Failed to open file");
        return 1;
    }
    fprintf(pfile, "print(\"hello world\")");
    fclose(pfile); // 关键操作:确保缓冲区内容写入磁盘
    system("python3 execute.py");
    return 0;
}

额外说明

如果不想立即关闭文件,也可以调用fflush(pfile)强制刷新缓冲区,但关闭文件是更规范、更安全的做法,能确保所有数据都被写入磁盘,同时释放文件资源。

内容的提问来源于stack exchange,提问作者Aditya Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:22:48