ac プログラムで引数付きのコマンドを実行しようとしています。たとえば、ユーザーが「./a.out ls -la」でプログラムを実行すると
プログラムは、la オプションを指定して ls を実行する必要があります。
しかし、私はそれを行う方法がわかりません。
私のプログラムはフォークを使用します。
私はこの方法を試します:
pid = fork();
if(pid == 0){
execvp(argv[1], &argv[2]);
}else{
wait(NULL);
}
しかし、うまくいきません。
コマンドで引数を渡す配列をexecvpの2番目の引数として渡したいのですが、ポインターと少し混乱しています(ポインターのポインターとはさらに混乱しています:s)。
引数にダッシュがあるため、これが機能しないことはわかっていますが、ダッシュを使用しない場合でも、プログラムは「la」オプションを処理せずに「ls」のみを起動します。
誰かが私を助けることができれば、私は良い方法を知ってうれしいです.
ありがとうございました。