我試圖模擬main()
函數使用字符串標記化和存儲標記在NULL終止的char*
數組中的正常函數的行爲。使getopt()進程argv [0]
除getopt()
之外的每件事情都很好。它不會重新排列argv[0]
因爲它期望第一個參數是程序名。但對於我的功能argv[0]
不是程序名稱。我想讓getopt()
也重新排列argv[0]
(非選項)。我怎麼做?
我試圖模擬main()
函數使用字符串標記化和存儲標記在NULL終止的char*
數組中的正常函數的行爲。使getopt()進程argv [0]
除getopt()
之外的每件事情都很好。它不會重新排列argv[0]
因爲它期望第一個參數是程序名。但對於我的功能argv[0]
不是程序名稱。我想讓getopt()
也重新排列argv[0]
(非選項)。我怎麼做?
雖然hack @Tom Tanner建議爲某些系統工作,但它並未針對我應該使其工作的目標進行編譯。我找到的另一個解決方法是用虛擬字符串替換argv []數組中的第一個參數,並使用getopt()。
爲什麼你想這樣做?這是濫用'getopt()'。 – alk