IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > Linux應用程序幾種參數傳遞方式

Linux應用程序幾種參數傳遞方式 時間:2018-07-30      來源:未知

參數傳遞一般是函數傳參或程序執行傳參,本文主要介紹程序執行傳遞參數。程序傳參一般有如下幾種方法。

1、程序執行時傳參

這種傳參使用較多,尤其是一些比較簡單的參數傳遞,如在linux下執行“ls -l、ls -a”時除了命令本身之外還有一些參數,這些參數不同導致程序執行結果不同,這種傳參方法最為簡單也最常用。實現方法如下

例:

#include

int main(int argc, char **argv)

{

int i = 0;

for(i = 0; i < argc; i++)

printf("argv[%d] = %s\n", i, argv[i]);

return 0;

}

運行結果

./test hello world

這種方法是通過main函數的兩個參數argc和argv實現,argc為參數的個數、argv是參數列表,通過解析argv就可以獲取參數內容。單人如果想要實現如ls -l或ls –version之類的參數傳遞則一般需要特殊的參數解析函數getopt、getopt_long或getopt_long_only解析,這里就不一一介紹了。

2、通過環境變量傳參

通過環境變量傳參也是使用較多的一種,如環境變量較復雜或較多且可能應為環境不同而不同時一般使用這種參數傳遞方式。實現方法如下

首先要設置環境變量如:export TEST_ENV=helloworld

程序中獲取環境變量的方法有兩種

1、 通過main函數的第三個參數將系統所以環境變量傳遞到程序中,然后找到想要的

#include

#include

int main(int argc, char **argv, char **envp)

{

int i = 0;

while(*envp != NULL) {

if (!strncmp(*envp, "TEST_ENV", strlen("TEST_ENV")))

printf("envp[%d] = %s\n", i++, *envp);

i++;

envp++;

}

return 0;

}

運行結果

2、 通過getenv函數獲取特定的環境變量

例:

#include

#include

#include

int main(int argc, char **argv, char **envp)

{

int i = 0;

printf("TEST_ENV = %s\n", getenv("TEST_ENV"));

return 0;

}

運行結果如下:

3、通過配置文件傳參

上述兩種方法傳遞參數相對簡單,如下更加復雜的參數,如很多需要一些配置文件,程序中可通過解析文件的方法實現參數傳遞,這只需要讀取文件內容安裝格式解析接口即可,主要是文件操作及字符串操作這里就不詳細講解了

上一篇:linux中斷編程、中斷編程詳解

下一篇:tftp文件傳輸協議詳解

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 起名字典|宝宝新生儿男孩女孩起名免费网-诗经周易生辰八字取名字大全 | 铝矾土熟料_高铝_细粉_骨料_铝酸钙粉_价格_铸造消失膜用铝矾土—嵩峰厂家 | 绿化工程-绿化养护-园林设计-东莞市泉桦园林绿化有限公司 | 助乐邦轮椅,北京轮椅置换,电动轮椅置换,轮椅回收北京,轮椅送货上门服务 | 河北徐工鲲鹏工程机械有限公司无锡分公司 | 鲜淘网 - 精选全球水果蔬菜肉食海产生鲜,酒水食品零食加盟供求信息 | 球磨机配件_烘干机配件_回转窑配件_球磨机小齿轮_球磨机大齿轮-巩义市兴农机械制造公司 | 透明膜包装机_三维包装机_上海拓懿机械有限公司 | 山东发电机组生产厂家,特种火花塞生产厂家,高压线生产厂家,空气滤芯生产厂家,济南市博盛动力机械有限公司 | 家电|想认识品茶妹子?这份攻略手把手教你 | 永磁变频空压机-无油空压机-螺杆式空压机热能回收-空压机配套-空压机合同能源管理-维修保养-北京斯特兰压缩机有限公司 | 选金银铅锌钽铌锡铂钨铑铱镐钯宝石&金属尾矿重选-青州冠诚重工机械 | 斩天手游网_高质量手机游戏下载中心 | 注塑机螺杆_光学无卤耐磨耐腐蚀螺杆_合金材料_螺杆研磨抛光机_杰宇螺杆 | 专注客流统计,客流分析,人流统计系统,客流计数器-广州市天威电子科技有限公司 | 临沂网站建设,临沂网站制作,临沂网络公司,临沂小程序开发,临沂网站设计,沂水网站建设,沂南网站建设,蒙阴网站建设,平邑网站建设,费县网站建设,兰陵网站建设,郯城网站建设,临沭网站建设,莒南网站建设,兰山网络公司 | 锂电池破碎生产线|大型电池粉碎机|锂电池分离设备|电池破碎打粉设备-河南鑫恒岩重工科技有限公司 | 石家庄大正机电设备有限公司_| 内蒙古发电机厂家_呼和浩特发电机租赁_销售_维修_回收_置换|盈弘发电设备有限责任公司 | 武汉防雷检测_防雷工程设计施工_防雷设备材料_湖北普天科技有限公司 | 医疗器械,理化实验室设备,微生物,培养基,一站式采购 - 杭州润泽仪器商城 | 三七/灵芝超微粉碎机,小型超细粉碎机价格-北京燕山正德机械设备有限公司 | 自走式缠绕机_上海德目包装设备厂家_在线式缠绕机_缠绕膜打包机 自装卸(挂桶)车|钩臂垃圾车|压缩垃圾车|密封自卸车|环卫垃圾车|餐厨车泔水车湖北程力专用车厂家 | 佳龙食品集团|高端辣条领导品牌| 中江网-中国江苏网·新江苏, 全国重点新闻网站 | 江苏减速机_常州减速机_摆线减速机_摆线针轮减速机 | 语音芯片_蓝牙芯片_ble数传芯片_蓝牙数传模块厂家_拓达半导体-蓝牙数传芯片模块原厂 | 双合金螺杆|注塑机螺杆|挤出机螺杆|双合金料管—东莞市精耐螺杆机械有限公司 | 宁波拓铁机械有限公司-球鉄_灰铁铸造_铸件工业退火 | 汽车标签|医疗标签|电子标签|手机电池标签|电脑电池标签|电源标签|耐高温标签|防静电标签|手机出厂膜|手机全裹膜|手机包裹膜|手机卖点膜|热转印标签|遮阳板标签|天势科技|-标签印制专家! | 铸铁平台,三维柔性焊接平台,划线平台,大理石平台,检验平板,花岗石平台_泊头市恒量机械设备有限公司 | 河间市天一密封材料有限公司-回转窑密封设备,除尘过滤袋 | 九江江菱电梯有限公司 | 医疗器械,理化实验室设备,微生物,培养基,一站式采购 - 杭州润泽仪器商城 | 上海网站建设公司|上海自适应网站制作|上海仿制网站建设公司-智淇网络 | 太原仪诚实验室设备有限公司 | 汽车标签|医疗标签|电子标签|手机电池标签|电脑电池标签|电源标签|耐高温标签|防静电标签|手机出厂膜|手机全裹膜|手机包裹膜|手机卖点膜|热转印标签|遮阳板标签|天势科技|-标签印制专家! | 人防信号控制箱厂家-液位控制器价格-信号灯箱批发厂家-消声加热器-鼎兴自控 | 联塑管代理,联塑管厂家批发,中财管总代理,康泰管代理,康泰管厂家批发-邯郸市中枢贸易有限公司 | 上饶环亚电脑会计培训学校--电脑学校|上饶电脑学校|上饶电脑培训|会计培训|上饶会计培训|上饶县会计培训|广丰会计培训|玉山会计培训|横峰会计培训|上饶网店培训 上进电缆(嘉兴)股份有限公司官网 - 光伏电缆|防火电缆|电力电缆|铝合金电缆专业生产厂家 | 双合金_注塑机_螺杆|炮筒|料管|料筒-广东海驰德塑胶机械有限公司 |