在编译前与后调教C语言binary的一种方法

A.编译前的调教

在日常的C语言工程中,常常需要针对不同的平台、环境做不同类型的软件。最基本的,不同的操作系统(ISA),不同的device(协议、接口),不同的引擎(开发环境等),对应的实际代码完全不同。这一类兼容性开发,比较常见的方式就是Kconfig配置。

可以使用mconf工具和conf工具对简易编写的Kconfig文件进行环境变量的配置,用mconf的binary程序读取Kconfig文件后,生成的.config文件由conf的binary产生宏展开文件(例如autohead.h这样的文件)将用户选择好的配置文件变量导入到即将开始的binay编译中。makefile将会针对对应的配置文件信息有选择的编译对应环境下的C语言binary,实现调教。

B.编译后的调教

C语言的主函数比较标准格式为

int main(int argc, char * argv[]){
exe();
return 0;
}

这里的argc表示执行binary时输入的指令数目,argv表示执行binary时的各条指令内容。一般从命令行运行某程序时,直接输入对应路径下的对应文件名就可以了。如是如此的话,argc就是1,argv[0]就是一个表示对应路径/对应文件的字符串。

但有时候,我们需要在单纯执行主程序之外还加入一些其他的因素。比如在主程序的执行同时对其进行监控(即状态信息的打印)。

这个时候,就可以使用getopt()家族了。这一函数族可以针对命令行执行时的输入指令不同执行不同类型的命令。

getopt(argc,argv,format,table)将会返回一个int告诉你是否存在对应table内的指令类型,并通过optarg参数来指代对应指令下的argv具体的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

考琪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值