引数がvi自体でviに渡されるのはなぜですか? [閉鎖]

引数がvi自体でviに渡されるのはなぜですか? [閉鎖]

次のように、最初の引数をvi自体でviに渡すのはなぜですか?

/bin/vi vi

ただ書いてはいけない理由:

/bin/vi

2つのコマンド間で私が見た唯一の違いは、引数なしで実行がオンにviなっviているvimのに対して、vi引数として提供するとそうでないということです。

ここで何が起こっているのでしょうか?

ベストアンサー1

execl実行するコマンドのパスとパラメータを取得します。

通常、最初の引数は実行中のファイルに関連付けられているファイル名を指す必要があります。

したがって、最初のパラメータはです"vi"

一方では、コマンドへのパスを指定し、argv他方ではプログラムが受け取る配列を指定すると考えることができます(ここでは少し単純化しました)。argv[0]発信者に含める内容を指定することは、発信者によって異なります。

プログラムを使用してargv[0]動作を調整できます。ご覧のとおり、VimをViとするとViのように動作しますvi。別の例は、busybox単一のバイナリに複数のコマンドを実装することです。

おすすめ記事