2009-08-01 37 views
5

我剛剛開始編程,並通過K & R去嘗試和學習C.我已經到了關於命令行參數(5.10)的部分,但現在我很難過。每次我嘗試打開一個我用命令行參數編寫的程序時,我都被告知文件X,X是參數,不存在。初學者做K&R

'的gcc -o找到find.c

打開查找測試

文件/文件/ Learning_C /測試不exist.`

有什麼建議?謝謝

回答

3

你在什麼系統上?在Unix/Linux下編譯&通過運行可執行文件:

gcc -o find find.c 
./find test 

As others have noted,當你與「./」前綴的二進制文件,也不會是任何命名衝突。但是,如果你在你的$PATH取得find訪問,則可能是findtest與大多數* nix分佈(即./myFind testArg) - 標準程序......也許你可以選擇更具體的名稱

一些衝突
+0

前綴「./」*至少在Linux上與當前文件夾「。」重要。通常不是PATH變量的一部分,因此係統不會找到二進制文件。如果您生成的可執行文件與您系統上的標準程序名稱相同(如「test」),則「./」將使用系統程序,而不是您編譯的程序。 – bluebrother 2009-08-01 19:36:21

+0

你誤解了我所說的。我做/沒有/說「無論你是否用」./「作爲前綴都沒關係......我只是簡單地指出你說的是什麼:如果你以」./「開頭,那就不會是一個命名衝突用find&test。 – Pete 2009-08-01 20:19:05

1

嘗試給你的輸出執行一個不同的名字。

我懷疑你的執行系統查找命令,它正在尋找一個名爲'測試'的目錄。

或者嘗試通過執行

./find toto 

編輯迫使:前面加上./到命令是很重要的,因爲它告訴了殼,而不是第一個在當前目錄下執行查找「找到'存在於你的PATH中。通常建議您沒有。 (當前目錄)出於安全原因在PATH中。

HTH

P.S.忘記說好工作通過K & R.我剛剛在C工作了三十年後完成了同樣的工作,很高興恢復和刷新心靈!

0

不是讓我們都單獨猜測你究竟做錯了什麼,或許你應該粘貼你用來提供插圖的程序?