首先是一个源程序:
#include <stdio.h>
#define nmemb 3
int main(int argc,char *argv[])
{
char *s;
FILE *stream;
int i;
if(argc<2)
{
printf("Use 2 para!/n");
exit(0);
}
stream=fopen(argv[1],"r");
// stream=fopen("/tmp/fwrite","r");
fread(s,1024,1,stream);
fclose(stream);
// printf("argc is %d/n",argc);
printf("%s/n",s);
exit(0);
}
fread第1个参数是读入的缓冲区首地址,第2个参数是一次读取的数据块的大小,第3个参数是读取数据块的个数,
第4个参数是fopen返回的文件指针。
它实现了一次以“块”的方式读取数据块。
main参数的使用:
int main(int argc,char *argv[])
第一个参数是包括程序名在内的参数的总个数,从1开始计数。
第二个参数是输入程序的参数分别存入到argv的数组中。
shell读取这个字符串,然后按照空格和单引号将其分成若干个小字符,并且按照顺序存入argv中,然后连同参数的总数一起附给main函数。
比如下面这个例子:
myapp up down 'and middle'
main得到的参数如下:
argc:4
argv:{"myapp","up","down","and middle"}
这样,argv[0][0]表示第一个参数的第一个字母。argv[1][0]表示第二个参数的第一个字母。