簡體   English   中英

如何檢查命令行中是否有字符串

[英]how to check if there's a string in the command line

我有這個命令行:> write_strings“Hello World!” a.txt b.txt dir / a.txt。 所有元素(命令,字符串,文件名)都進入char指針數組。 如何獲取元素並檢查它是字符串還是文件名? 我並不是指確切的代碼行,而只是需要這個想法。 如果沒有字符串,程序應該返回錯誤。

您可以使用諸如stataccess之類的API來檢查路徑所指向的文件是否存在。 傳遞給進程時,文件路徑和常規字符串之間沒有根本區別。

如果你正在使用標准的main(int argc, char *argv[])約定,你可以循環遍歷argv ,檢查每一個以通過前面提到的系統調用之一查看它是否是一個文件。

可以在命令行上傳遞的每個字符串都是潛在的路徑名,因為在這兩種情況下唯一的限制是不能有任何NUL。

具有命令行語法的程序,其中特定參數可能會或可能不會用作路徑名(取決於“filename-ish strings”或文件存在測試的某些模糊定義)是一個糟糕的設計。 每個參數都應具有由參數列表中的順序定義的含義,或者與-m msg-o outputfile類的選項相關聯。

一個表現良好的unix程序將讓用戶創建一個名為Hello world!的文件Hello world! 如果他想。

不考慮程序可能有多么有意義 - 您可以通過argv[i][j]循環遍歷char *argv[]的單個字符。 如果每個字符串都包含“.txt”,則表示您沒有字符串,這不是您上下文中的文件名

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM