这是我正在做的一个学校项目。
我正在写一个网络服务器。如果请求的资源具有扩展名“cgi”,我需要分叉并执行程序。如果 cgi 是已编译的可执行文件,则此方法有效:
execl(path, (char*) 0);
但是如果 cgi 程序是一个需要解释的脚本,我需要做这样的事情:
execl("/bin/sh", path, path, (char*) 0);
我如何编写代码以便处理任何一种情况?我的外壳如何做到这一点?我应该使用该file
程序来确定它是可执行文件还是文本,如果是文本,则假设它需要被解释?