目錄
使用命令行參數(shù)獲取用戶(hù)在DOS命令行輸入的指令:
????????方法:代碼如下:
使用命令行參數(shù)獲取并打印部分或者整體環(huán)境變量的方法:?
方法1:
?運(yùn)行結(jié)果:
方法2:使用外部鏈接environ:
使用命令行參數(shù)獲取用戶(hù)在DOS命令行輸入的指令:
????????方法:代碼如下:
?
?上方代碼解析:
? ? ????argc : 命令行傳入?yún)?shù)的總個(gè)數(shù)
????????argv : char* argv[ ]是一個(gè)指針數(shù)組,里面存放的元素全是指針,這些指針會(huì)指向所有的命令行參數(shù),例如:argv[0]指向程序的全路徑名(這個(gè)是固定的),argv[1]指向在DOS命令行中執(zhí)行程序名后的第一個(gè)字符串,argv[2]指向第二個(gè)DOS命令行輸入的第二個(gè)子字符串。????????
????????也就是說(shuō)下標(biāo)0位置處的argv指向的永遠(yuǎn)是指向該文件的路徑名,剩下的從下標(biāo)1開(kāi)始的元素指針指向的是文件后面的各個(gè)指令。
編譯后運(yùn)行該結(jié)果:?
?
????????如上,在Dos命令行中只輸入了該程序的路徑名,所以argc的個(gè)數(shù)為1,那么argv[0]指向的就是程序的全路徑名。?
?當(dāng)我們?cè)贒OS命令行中不僅運(yùn)行該程序,還在其后面+選項(xiàng):
?
? ? ? ??解析:實(shí)際上我們?cè)诿钚猩陷斎氲拿?,是一個(gè)長(zhǎng)字符串,例如:“Is -a -d”,系統(tǒng)會(huì)將它們會(huì)分隔成一個(gè)個(gè)小的子字符串,即”Is”然后被存放在char* argv[ ]這個(gè)指針數(shù)組中,所以argv[0]=該程序;argv[1]=ls指令,argv[2]=“-a”指令。argc是int型,指的是子字符串的個(gè)數(shù)。
????????假如argc數(shù)值為10,那么數(shù)組從下標(biāo)1索引處開(kāi)始會(huì)有9個(gè)元素指針?lè)謩e指向9個(gè)子字符串。直到argv數(shù)組遍歷到最后一個(gè)元素指針的下一個(gè)指針處,發(fā)現(xiàn)該指針指向NULL,停止遍歷,終止循環(huán)。
?那么可根據(jù)int main中的命令行參數(shù)去修改上面那種寫(xiě)法:?
????????針對(duì)方法1的寫(xiě)法有2種修改方式,一種是使用argv[i]可以直接做循環(huán)的限制條件;另一種就是使用*(argv+i) ——解引用指針位置。
既然我們可以用int main()的命令行參數(shù)去獲取用戶(hù)在DOS命令下輸入的指令,接下來(lái)就是重點(diǎn)了:
? ? ? ? 那么我們就可以根據(jù)用戶(hù)輸入的DOS指令,通過(guò)數(shù)組去獲取用戶(hù)輸入的每一個(gè)子字符串,通過(guò)這些字符串去執(zhí)行特定的命令,如下:
?
?
? 通過(guò)寫(xiě)好該代碼后,編譯運(yùn)行:
?
?
? 結(jié)果解析:數(shù)組argv[0]獲取到該程序的全路徑名,argv[1]獲取到用戶(hù)輸入的-a選項(xiàng),根據(jù)-a選項(xiàng)可以執(zhí)行特定的作用。
????????就好比我們輸入ls -a,Shell操作系統(tǒng)也是通過(guò)數(shù)組argv[0]去獲取到ls指令(ls的實(shí)現(xiàn)也是代碼文件)的路徑名,argv[1]獲取到-a選項(xiàng),使用if語(yǔ)句與strcmp比較函數(shù)判定,然后執(zhí)行特定的作用,即顯示當(dāng)前路徑下所有的隱藏文件,這就是ls指令下 -a選項(xiàng)的作用。
剩下的案例也是一樣的。
?
使用命令行參數(shù)獲取并打印部分或者整體環(huán)境變量的方法:?
方法1:
????????在int main的命令行參數(shù)種,再多加一個(gè)char* env[] ,它的類(lèi)型也是字符指針,該數(shù)組中的每一個(gè)元素都指向環(huán)境變量的一行內(nèi)容。我們還是利用循環(huán)去遍歷env數(shù)組中的每一個(gè)元素,進(jìn)而獲取到環(huán)境變量中的所有內(nèi)容!
?運(yùn)行結(jié)果:
方法2:使用外部鏈接environ:
?
代碼:
?
運(yùn)行結(jié)果:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-465585.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-465585.html
到了這里,關(guān)于Linux——使用命令行參數(shù)管理環(huán)境變量的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!