簡體   English   中英

我們如何檢查給定的輸入是否是一個有效的系統命令,如 c 程序中的“ls”或“cd”?

[英]How can we check if a given input is a valid system command like "ls" or "cd" in c program?

我正在編寫將“ls”或“cd”等系統命令作為輸入的 ac 程序。但是,用戶可以給出任何類型的命令,其中有些命令不是命令。我如何才能找到哪些命令有效,哪些無效?我正在 Ubuntu 中編寫代碼。

在我的腦海里,有兩種方法可以檢查輸入是否是有效的系統命令,而無需實際嘗試運行它:

  1. 一長串if() s 和else if() s,其中strcmp()輸入字符串與硬編碼的、預先確定的有效命令列表 - 這可能相對較慢,無論是寫入還是運行,但有條件 -使用#ifdef編譯,幾乎可以完美移植(即,只要付出足夠的努力,就可以從一個代碼庫中使用 Windows、Linux、BSD)。

  2. 如果您不介意僅限於類 UNIX 平台,請解析$PATH變量,並在從$PATH找到的目錄中搜索與輸入字符串具有相同文件名的可執行文件,如果不匹配則處理錯誤.

您可能希望通過硬編碼一些$PATH可能找不到的異常來實現2.1.混合

恕我直言,但是,我不明白您為什么要這樣做; 這對我來說似乎令人費解。

暫無
暫無

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

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