0

对于我的任务,我有一个 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
4

1 回答 1

0

显然,我必须在可执行路径前添加一个“./”。

像这样:sprintf(systemCall, "./passweb -add %s", username);

于 2012-12-08T22:27:53.487 回答