【发布时间】:2017-08-18 06:35:18
【问题描述】:
如何从 C 程序中为 python 脚本指定参数,其中必须在 c 程序中调用 python 脚本时传递此参数
这个C代码能够成功运行python脚本,但是我怎样才能传递python脚本可以接受的参数呢?
#include <stdio.h>
#include <string.h>
#include <python2.7/Python.h>
#include <getopt.h>
int main (int argc, char * argv[])
{
char command[50] = "python2.7 /alok/analyze.py";
system(command);return(0);
}
【问题讨论】:
-
只是在
/alok/analyze.py之后添加参数不起作用? -
我认为您不需要标题
Python.h,您不使用任何python函数,您只需使用字符串调用system(),然后只需使用fork()-exec()-wait () 也与 Python 无关,你的程序不需要了解 Python。 -
那么您的错误不在此调用中,
system()只会运行execl("/bin/sh","-c",command,NULL); -
您知道您通过此调用只需将字符串
"-dargv[1]"传递给它吗?如果要使用 argv 参数,则必须将其复制为system()的单个字符串,或使用fork()和exec()函数之一。 -
你不能只忽略双引号。您将需要保留足够的缓冲区空间(您必须确保此缓冲区大于两个字符串的总和,或者如果它太长则中止它)并将两个字符串复制到此缓冲区中。这样您就有一个字符串,其中包含
system()的完整参数
标签: python c python-2.7 arguments