我試圖在主例程中使用rm
命令來刪除一個我已經使用命令行參數的文件。該值存儲在argv[2]
我一直在使用在c程序中使用stdlib.h中的system()函數使用'rm'命令
system("rm argv[2]");
system("rm ./argv[2]");
system("rm $HOME/argv[2]");
嘗試,但它給了我一個錯誤說
"cannot locate file argv[2]"
的文件名保存在argv[2]
因爲我已經檢查了它。
有人請指導我!
我只能假設這有四個upvotes之前的可怕壞建議「你仍然需要檢索字符串argv [2]使用snprintf或strncpy」被添加。如果你不打算修改它,除了增加緩衝區溢出的機會之外,還有什麼地方可以將字符串複製到一個新的字符串? – Miles 2010-02-12 07:17:49
不知道如何使用snprintf或strncpy進行緩衝區溢出,但是您確實無需執行此步驟。答案回滾。 – jschmier 2010-02-12 07:21:00
這個問題沒有這麼說,但你可以使用argv [2]將參數傳遞給rm,在這種情況下,unlink不起作用:-) – 2010-02-12 07:23:11