C中使用system() 调用了一个pyrhon脚本

调用了一个pyrhon脚本,类似于python /path/xxxx.py
但是,返回错误码256。不过我我在控制台直接执行python /path/xxxx.py 可以正常执行。。。求解,定位半天了,这会在下班回家路上,求解。。。

system是个综合的操作,分解开来看就是相当于执行了
1 fork 生成一个子进程。
2 在子进程执行 execl("/bin/sh","sh","-c" command,(char*)0);
3 waitpid

下面进入正题,返回值:
1 如果fork失败了,或者waitpid返回除了EINTR之外的错误,system返回 -1;
2 execl执行失败,其返回值如同shell执行了"exit(127)" 一样。
3 如果上述三步都执行成功,那么,system返回值是shell的终止状态。

你的system返回256,表示还是正常执行了,shell命令的返回值是1

python进程本身也用全路径。同时py文件路径是否有空格。有的话就把整个路径引号起来

用系统提供的接口吧,Windows有CreateProcess和ShellExecute,Linux有fork和exec函数族

这个取决于环境变量、路径等,最好对python的程序先打包成 exe 再调用。
http://blog.csdn.net/magictong/article/details/5979421