2012-07-10 69 views
0

最近有一位CS實驗室的學生在TA TA上大肆宣傳,argv [0]不是第一個參數,而是你運行的命令(有點像當他們咆哮他們「愚蠢」必須在Python中寫入x == 2或x == 4而不是x == 2或4),並問我爲什麼要這樣做。那麼,我真的不知道爲什麼。我沒有看到任何實際的目的,不知道用什麼命令來執行你的程序,也沒有傳遞一個空列表/向量的問題,谷歌也沒有幫助解決這個問題。爲什麼argv [0]中的命令要比第一個arg好?

所以我的問題是爲什麼被執行的命令本身包含在命令行參數的列表/向量中?

+0

您不禁止重命名可執行文件... – sidyll 2012-07-10 21:36:12

+0

嗯,不,但我從來沒有見過任何情況下,一個人會照顧,直到cnicutar指出下面的情況。 – user381261 2012-07-10 21:38:30

回答

2

瞭解命令行可以影響程序的行爲方式。作爲一個着名的例子,bash的行爲就像經典的sh,如果你這樣稱呼它(例如使用軟鏈接)。忙碌的箱子也浮現在腦海中(它確實大量使用它)。

+0

我從來沒有真正使用過這些,但有一個單一的應用程序的行爲是不同的。謝謝。 – user381261 2012-07-10 21:36:37