python脚本的输出读入C程序,而不创建临时文件在程序之间传递值

2022-05-21 08:17:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用system("calling python script")<;-这在c程序中调用。在脚本中,我只是检查两个数组是否匹配,然后返回这个

下面这行是由C程序触发的

然后我读取系统返回值,它只返回0,我所要做的就是将一个值从python传递给C程序,而不在它们之间使用临时文件

C程序:

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

char buffer[300];
snprintf(buffer, sizeof(buffer), "xls2csv %s > /home/......../xyz.py", filename);

int systemReturn = system(buffer);

if(systemReturn == -1)
{
    // The system method failed
    fprintf(stderr, "Error");
}
if(systemReturn = 2 )
{
    //Then do this
}

python程序:

if(Data_in_end != merged):
    print("They did not match")
    sys.exit(1)
else:
    print("They did match")
    sys.exit(2)

Tags: lt程序ifincludebuffermatchsysexitscriptsystemprinttheydidcallingsystemreturn
1条回答
网友
1楼 ·

如果您只想在程序之间传递一点数据,可以使用参数。例如,默认情况下,linux shutdown命令将在一分钟内关闭计算机。但是,如果将参数“now”(shutdown now)传递给它,它将立即关闭

在c程序中,需要一个接受参数的特殊格式的main函数。网上有数百个例子。对于大量数据,不建议使用这种方法