我正在用C編寫一個程序,我希望它能檢測到它自己的名字。我會解釋:如何使用gcc編譯後獲取執行文件的名稱?
我希望它做一個特定的動作,具體取決於它的名字。比方說:
if (!strcmp(myName, "Program1"))
printf("I am program 1!");
else
printf("I am someone else !");
此代碼包含在Program1.c,並與編譯:
gcc Program1.c -o Program1
而且我與執行:
./Program1
但我無法找到允許我獲取值「Program1」(可執行文件的名稱)的代碼,這將成爲我給出的代碼中的變量myName。
有人可以幫我嗎?
首先,在C中,您無法將字符串與'myName ==「Program1」'進行比較。但在'main'中,你可以檢查'argv [0]'這是可執行文件的名稱(可能還有路徑)。 –
是的,對不起,我累了,想做我想清楚的,但它確實是不正確的。感謝您的回答! – Alan
在MSVC中,'argv [0]'包含我在控制檯輸入的內容,例如'test.exe'或'.. \ ctest \ test',當我從GUI運行時它會給出'F:\ Work \ CTEST \ test.exe'。所以你的名字匹配需要相當小心;) –