それで、私は Unix のミニシェルを作っていて、障害になっています。組み込み関数を実行できるようにする必要があるため、関数を作成しました。
int exec_if_built_in(char **args)
文字列の配列を取ります (最初はコマンドで、残りは引数です)。非組み込みコマンドの場合は、execvp などを使用するだけですが、最初の文字列を関数にマップする方法を見つける必要があります。1 つは文字列、もう 1 つは対応する関数ポインターの 2 つの配列を作成することを考えていました。ただし、これらの関数の多くは異なるため (異なるものを返し、受け入れる)、このアプローチは機能しません。名前プロパティと関数ポインタ プロパティを持つ構造体の配列を作成することも考えましたが、使用する関数の性質がさまざまであるため、これは機能しません。
では、文字列の入力に基づいて関数を実行する最良の方法は何でしょうか? 文字列を特定の関数にマップするにはどうすればよいですか? 私は関数ポインタにあまり詳しくないので、何かが欠けているかもしれません。
皆さん、助けてくれてありがとう:)