getopt_long接收到的参数,试着打印出来

来源:互联网 发布:supreme反光外套淘宝网 编辑:程序博客网 时间:2024/06/12 01:21

//   http://wmnmtm.blog.163.com/blog/static/38245714201181315527386/

 

getopt_long接收到的参数,试着打印出来 - 加菲 -  .
 
添加的代码如下:
 

 

getopt_long接收到的参数,试着打印出来 - 加菲 -  .
 
 
 
{ int retval; int ti;//zjh char *tm; tm = nargv; _DIAGASSERT(nargv != NULL); _DIAGASSERT(options != NULL); _DIAGASSERT(long_options != NULL); /* idx may be NULL */ printf("getopt_long函数被调用,本函数第1个参数nargc=%d \n",nargc);//zjh for (ti=0;ti<nargc;ti++) {  printf("getopt_long函数被调用,本函数第2个参数nargv=%s \n",*nargv);//zjh  nargv++; } nargv = tm;//zjh  printf("getopt_long函数被调用,本函数第3个参数options=%s \n",options);//zjh

 if ((retval = getopt_internal(nargc, nargv, options)) == -2) //internal:内部的//前两个参数对应于main(...),第三个即为冒号分隔的字符串
 {

 记的nargv = tm;//zjh 是在一开始把nargv的首地址记下,在对nargv++后,要还原回去,不然后面的地址就是错的了,其实应该拷贝一份出来,不是很熟悉,所以偷懒一下了。

打印的结果如预期,是一个向量,或者叫长字符串吧,中间各参数是用空格分隔的:

其实我输入的测试命令是“x264 --crf 22  -o test.264 hall_cif.yuv 352x288”,可以看到,它把这些以空格为分隔循环打印了出来啦。

 

原创粉丝点击