これは私が取り組んでいる学校のプロジェクトです。
私はウェブサーバーを書いています。要求されたリソースの拡張子が「cgi」の場合、プログラムをフォークして実行する必要があります。cgiがコンパイル済みの実行可能ファイルである場合、これは機能します。
execl(path, (char*) 0);
しかし、cgiプログラムが解釈する必要のあるスクリプトである場合、私は次のようなことをする必要があります。
execl("/bin/sh", path, path, (char*) 0);
どちらのシナリオでも処理できるようにコードを作成するにはどうすればよいですか?私のシェルはこれをどのように行いますか?プログラムを使用してfile
、実行可能ファイルかテキストかを判断し、テキストかどうかを判断する必要がありますか?それから、解釈する必要があると想定しますか?