对于我的任务,我有一个cgi脚本(C程序)和一个我想用脚本使用system()调用的程序。两者都在cgi-bin /和chmodded到755.我知道我在我的cgi程序中进行的系统调用是有效的(路径是正确的,命令是正确的......)但是调用总是失败。我在执行cgi-script期间检查了工作目录,这是正确的。如果我在bash中运行相同的调用它可以工作,但在我的菜单程序中它不起作用。
这很奇怪,因为当我在我的计算机上运行服务器时使用系统调用(使用python -m CGIHTTPServer),但当我将网站放在我所在的大学服务器上时,一切都有效,除了system()调用。所以它似乎与权限有关。
这是有问题的电话,如果有任何帮助:
sprintf(systemCall, "passweb -add %s", username);
exitStatus = system(systemCall); //always 1
答案 0 :(得分:0)
显然,我必须在可执行路径前添加“./”。
像这样:sprintf(systemCall, "./passweb -add %s", username);