0
我有这样一段代码运行Python程序,我希望我的壳,当我输入类似以下运行Python程序: mysh> hello.py如何在C程序中运行Python可执行文件(.py)(例如使用execvp)?
但hello.py不传递到/ usr/bin/python在execvp和我需要帮助搞清楚如何正确地传递参数到execvp。
if (pid==0) // child process
{
if (py_flag==1)
execvp("/usr/bin/python",argv);
else
{
execvp(argv[0],argv);
perror("error");
}
}
而这里的我收到的结果:
./basic_shell
mysh> hello.py
I am a python program
Python 2.6.6 (r266:84292, May 27 2013, 05:35:12)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
虽然我希望收到这样的结果:
$ python hello.py
sys.argv[0] = hello.py
请让我知道如何加以固定。