改行で区切られたbashコマンドを含むテキストファイルを入力として受け入れ、テキストファイル内のすべてのコマンドを実行するプログラムShellcode.cを作成したいと思います。たとえば、テキストファイルには次が含まれます。
echo Hello World
mkdir goofy
ls
私はこれを試しました(exec関数の1つで練習を始めるためだけに):
#include <stdio.h>
#include <unistd.h>
void main() {
char *name[3];
name[0] = "echo";
name[1] = "Hello World";
name[2] = NULL;
execvp("/bin/sh", name);
}
その見返りに、
echo: Can't open Hello World
私は execvp 関数で立ち往生しています。どこで間違ったのでしょうか?