linux下c编程main函数的参数问题
2012-07-22 14:06
423 查看
在做linux下的应用编程时,main函数被定义成这个样子:
int main(char argc,char *argv[])
这两个参数是做什么用的呢?又怎么在程序中使用呢?
官方的说明是:argc保存的是命令行参数的数目,而argv是指向个参数的各指针所构成的数组。
弄个测试程序测试下看看。
建一个名为test.c的c文件。
我们再给程序传几个参数看看结构如何:
我们可以看到,argc里保存的是我们在启动程序时,所有命令行参数的个数,当然也包括我们的程序名,并且连我们的“./”也一并放到了参数里,argv数组里保存指向个参数的指针。
在上面这个测试中,我们可以将argv[4]也打印出来看看,根据linux的普遍规则,这个里面应该存放的是null,标志一个数组的结束。
我们的猜测果然是对的。
注:本文章纯属个人的学习总结笔记,不保证文章正确性。。。。
int main(char argc,char *argv[])
这两个参数是做什么用的呢?又怎么在程序中使用呢?
官方的说明是:argc保存的是命令行参数的数目,而argv是指向个参数的各指针所构成的数组。
弄个测试程序测试下看看。
建一个名为test.c的c文件。
#include <stdio.h> int main(char argc,char *argv[]) { char i=0; printf("argc is:%d \n",argc); for(i=0;i<argc;i++){ printf("argv[%d] is:%s \n",i,argv[i]); } } /****************** END **********************/然后进行编译,然后执行:
我们再给程序传几个参数看看结构如何:
我们可以看到,argc里保存的是我们在启动程序时,所有命令行参数的个数,当然也包括我们的程序名,并且连我们的“./”也一并放到了参数里,argv数组里保存指向个参数的指针。
在上面这个测试中,我们可以将argv[4]也打印出来看看,根据linux的普遍规则,这个里面应该存放的是null,标志一个数组的结束。
#include <stdio.h> int main(char argc,char *argv[]) { char i=0; printf("argc is:%d \n",argc); for(i=0;i<argc;i++){ printf("argv[%d] is:%s \n",i,argv[i]); } printf("argv[%d] is:%s \n",i,argv[i]); } /****************** END **********************/然后我们再编译并执行:
我们的猜测果然是对的。
注:本文章纯属个人的学习总结笔记,不保证文章正确性。。。。
相关文章推荐
- linux下c编程main函数的参数问题
- linux下c编程main函数的参数问题
- linux环境下的main函数传递参数的问题
- linux中断处理程序需要注意的参数问题
- 【误区】关于Linux C 网络编程函数accept第三个参数
- linux 驱动编程___竞态/并发问题___自旋锁
- Linux 多线程编程的问题(转)
- Linux 多线程编程----线程见同步问题
- Linux下使用使用管道时多个参数的问题的解决方案
- 问题:C#控制台程序参数;结果:设置与读取C#控制台应用程序Main函数中的参数args
- TCP/IP网络编程 基于Linux编程_2 --I/O流分离的半关闭问题
- linux串口编程(termios)相关的使用问题
- Linux学习篇之---curl的多参数问题
- linux基础——经典线程同步问题解析及编程实现
- 按如下函数原型用函数编程解决如下的日期转换问题(要求考虑闰年的问题): 输入某年某月某日,计算并输出它是这一年的第几天。 /* 函数功能: 对给定的某年某月某日,计算它是这一年的第几天 函数参数:
- Linux下Socket编程的端口问题( Bind error: Address already in use )
- Unix(Linux)C编程问题精粹
- 关于main函数的传入参数的问题
- Linux下c编程rename函数导致的问题
- IO模式设置网络编程常见问题总结—IO模式设置,阻塞与非阻塞的比较,recv参数对性能的影响—O_NONBLOCK(open使用)、IPC_NOWAIT(msgrcv)、MSG_DONTWAIT(re