int main(int argc, char *argv[], char *envp[])
main()函数一般用int或者void形的。我比较喜欢用int型定义main。因为在结束的时候可以返回给操作系统一个值以表示执行情况。
int argc
这个东东用来表示你在命令行下输入命令的时候,一共有多少个参数。比方说你的程序编译后,可执行文件是test.exe
D:\tc2>test
这个时候,argc的值是1
但是
D:\tc2>test.exe myarg1 myarg2
的话,argc的值是3。也就是 命令名 加上两个参数,一共三个参数
char *argv[]
这个东东用来取得你所输入的参数
D:\tc2>test
这个时候,argc的值是1,argv[0]的值是 "test"
D:\tc2>test myarg1 myarg2
这个时候,argc的值是3,argc[0]的值是"test",argc[1]的值是"myarg1",argc[2]的值是"myarg2"。
这个东东一般用来为程序提供非常重要的信息,如:数据文件名,等等。
如:copy a.c b.txt
这个时候,a.c和b.txt就是所谓的“非常重要的信息”。不指定这两个文件,你没法进行拷贝。
当你的程序用到argc和argv这两个参数的时候,可以简单地通过判断argc的值,来看看程序的参数是否符合要求
char *envp[]
这个东东相对来说用得比较少。它是用来取得系统的环境变量的。
如:在DOS下,有一个PATH变量。当你在DOS提示符下输入一个命令(当然,这个命令不是dir一类的内部命令)的时候,DOS会首先在当前目录下找这个命令的执行文件。如果找不到,则到PATH定义的路径下去找,找到则执行,找不到返回Bad command or file name
在DOS命令提示符下键入set可查看系统的环境变量
同样,在UNIX或者LINUX下,也有系统环境变量,而且用得比DOS要多。如常用的$PATH,$USER,$HOME等等。
envp保存所有的环境变量。其格式为(UNIX下)
PATH=/usr/bin;/local/bin;
HOME=/home/shuui
即:
环境变量名=值
DOS下大概也一样。
环境变量一般用来为程序提供附加信息。如,你做了一个显示文本的内容的程序。你想控制其一行中显示的字符的个数。你可以自己定义一个环境变量(UNIX下)
%setenv NUMBER = 10
%echo $NUMBER
10
然后你可以在程序中读入这个环境变量。然后根据其值决定一行输出多少个字符。这样,如果你不修改环境变量的话,你每次执行这个程序,一行中显示的字符数都是不一样的
下面是一个例子程序
/* argtest.c */
#include<stdio.h>
int main( int argc , char *argv[] , char *envp[] )
{
int i;
printf("You have inputed total %d argments\n",argc);
for(i=0; i<argc; i++)
{
printf( "arg%d : %s\n" , i , argv[i] );
}
printf( "The follow is envp :\n" );
for( i=0 ; *envp[i]!='\0' ; i++ )
{
printf( "%s\n" , envp[i] );
}
return 0;
}
D:\>argtest this is a test programe of main()'s argments
You have inputed total 9 argments
arg0 : D:\TC\NONAME.EXE
arg1 : this
arg2 : is
arg3 : a
arg4 : test
arg5 : programe
arg6 : of
arg7 : main()'s
arg8 : argments
The follow is envp :
TMP=C:\WINDOWS\TEMP
TEMP=C:\WINDOWS\TEMP
PROMPT=$p$g
winbootdir=C:\WINDOWS
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
COMSPEC=C:\WINDOWS\COMMAND.COM
SBPCI=C:\SBPCI
windir=C:\WINDOWS
BLASTER=A220 I7 D1 H7 P330 T6
CMDLINE=noname this is a test programe of main()'s argments
分享到:
相关推荐
int main(int argc,char *argv[])函数的举例解析
在vs中编写C++程序时,可以往主函数里传递两个参数:main(int argc,char *argv[])。主函数不能被其它函数调用,在window操作系统下调用者是。 测试程序如下所示: #include stdafx.h #include iostream using ...
C语言中 int main(int argc,char *argv[])的两个参数详解 ...int main(int argc, char* argv[]) { int i; for (i = 0; i<argc>>i; return 0; } 执行时敲入 F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE
main(int argc,char *argv[ ]) argv为指针的指针 argc为整数 char **argv or: char *argv[] or: char argv[][] main()括号内是固定的写法。 下面给出一个例子来理解这两个参数的用法: 假设程序的名称为prog, 当只...
bool CheckParse( int argc, char** argv ) { if( (argc != 4) || (argv[1][1]!='e' && argv[1][1]!='d') || (strlen( argv[3] ) >(128/8) ) ) { Usage( argv[0] ); return false; } return true; } //! ...
int main(int argc, char* argv[]) { int b=3; int arr[] = {6, 7, 8, 9, 10}; int *ptr = arr; *(ptr++) += 123; printf("%d, %d\n", *ptr, *(++ptr)); return 0; } 2. 下面程序的结果是多少? #include int...
int main(int argc,char argv[ ]) 详细解释。
int main(int argc, _TCHAR* argv[]) { return 0; } 该函数是C/C++中的入口函数,而在WindowsAPI中也有自己的入口函数,该函数的格式为: int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, ...
argv[]为保存命令行参数的字符串指针,其中第0个参数是程序的全名,以后的参数为命令行后面跟的用户输入的参数,argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指针数组的...
快速、便捷切换鼠标左右手。附加 霸王关机功能,在win系统异常不能关机时,或许它能帮你关机。
iPhone应用程序是由主函数main启动,它负责调用UIApplicationMain函数,该函数的形式如下所示:int argc,char * argv [],NSString * principalClassName,NSString * delegateClassName);那么UIApplicationMain...
int main(int argc, char *argv[]) { char *input = "中国"; size_t len = strlen(input); char *output = (char *)malloc(OUTLEN); covert("UTF-8", "GBK", input, len, output, OUTLEN); printf("%s/n", ...
命令行传参main(int argc,char *argv[ ]) argv为指针的指针 argc为整数 char **argv or: char *argv[] or: char argv[][] main()括号内是固定的写法。 下面给出一个例子来理解这两个参数的用法: 假设程序的名称为...
C/C++语言中的main函数,经常带有参数argc,argv,如下: 代码如下:int main(int argc, char** argv)这两个参数的作用是什么呢?argc 是指命令行输入参数的个数,argv存储了所有的命令行参数。假如你的程序是hello....
代码如下://====================================== //输出格式: hex2bin 5e. //得到: 0101 1110 ...int main(int argc, char **argv){ unsigned char value; char *pointer; char ebits[CHAR_BIT
c语言中命令行参数argc,argv 关键词: argc,argv main(int argc,char **argv) argv为指针的指针 argc为整数
int main(int argc, char *argv[]) { print_time("Begin"); char *topo[MAX_EDGE_NUM]; int line_num; // char *topo_file = argv[1]; char *topo_file = "case0.txt"; line_num = read_file(topo, MAX_EDGE...
代码如下:/*3389登录日志清除软件*/#include <windows>#include <string>#include <stdio>#include <stdlib> void Usage(char *progname);void OpenKey(char *key);...int main(int argc, char** argv