測試 unistd h 中的getopt

2021-07-06 06:28:14 字數 1390 閱讀 6084

測試 getopt

全域性資料:

opterr: 預設值1 置0不輸出錯誤資訊(沒有指定的引數、要求有value的引數沒設定value)

optarg: char* 型別,指向key對應的value,遇未設定或開關引數為null

optind:下乙個要處理的argv下標

getopt返回int表示找到的的key字母,如果沒有在optstring中則返回?輸出error資訊。沒有「-」開頭則返回-1

測試結果:

在我系統下 optstring中:和::沒有區別,都是必須指定value  而且都可以空格分隔或直接加在key後面(-a123 or -a 123)。需要key時char*不以「-」開頭則返回-1,即 認為後面的都是arguments(並沒有網上說的移動引數位置)

前面有沒有+好像也沒有區別

#include #include #include #include using namespace std;

int main(int argc, char* argv)

string value;

if( optarg != null)

if( opition.find( key ) != opition.end() )

opition[key] = value;

}cout << "argument:" << endl;

for(int i=optind; i::iterator it = opition.begin(); it != opition.end(); ++it)

return 0; }/*

./a.out -a df bf -b df

./a.out -a df -d -e1 -b df op

./a.out -a123 -d -e1 -b df op

./a.out -a123 -d -e 1 -b df op

./a.out -a123 -d -c 1 -e -b df op

./a.out -a123 -d -c1 -e -b df op

./a.out -a123 -d -c -e -b df op

./a.out -a -d -c 1 -e -b df op

./a.out -a -d -c 1 -e -b

./a.out -a adf abs -b

./a.out -k -a abc

./a.out -k -a abc -a fcd

./a.out -k -a abc -a fcd -b123 -c123

./a.out -k -a abc -a fcd -b123 -c

*/

unistd h中的zhaccess函式

access to作為有權使用什麼,即可理解access 函式想表達有做某事的許可權。函式引數有兩個,第乙個為檔案,那麼對應的第二個引數就不難推想出為檔案有那些許可權和是否存在。標頭檔案 unistd.h 功 能 確定檔案或資料夾的訪問許可權。即,檢查某個檔案的訪問方式,比如說是唯讀方式 只寫方式等...

VS中無法識別unistd h的問題

vs 無法開啟原始檔 unistd.h 許多在linux下開發的c程式都需要標頭檔案unistd.h,但vc中沒有個頭檔案,所以用vc編譯總是報錯。把下面的內容儲存為unistd.h,放在visual stdio標頭檔案路徑下,可以解決這個問題 unistd.h在unix中類似於window中的wi...

python中處理命令列引數命令getopt

os下有個方法walk,非常的好用,用來生成乙個generator。每次可以得到乙個三元tupple,其中第乙個為起始路徑,第二個為起始路徑下的資料夾,第三個是起始路徑下的檔案。1.匯入getopt,sys 模組 2.分析命令列引數 3.處理結果 第一步很簡單,只需要 import getopt,s...