问下文件输出输入这章节如何学

问下文件输出输入这章节怎么学?
#include<stdio.h>

#include<stdlib.h>
int main(int argc,char *argv[])
{
int ch;
FILE * fp;
long count=0;

if(argc!=2)
{
printf("Usage:%s filename\n",argv[0]);
exit(1);
}
if((fp=fopen(argv[1],"r"))==NULL)
{
printf("Can't open %s\n",argv[1]);
exit(1);
}
while((ch=getc(fp))!=EOF)
{
putc(ch,stdout);
count++;
}
fclose(fp);
printf("File %s has %ld characters.\n",argv[1],count);
return 0;
}

看C Primer Plus看到文件输入输出这章了。。发现这里的代码运行后看不懂的,以前学的都是可视的。这个好像有点抽象。根本就没有文件如何输入输出的概念。
问下应该如何学习这一章?我不想就看着文字乱想。
真想找个人带带。纯自学,身边没一个会这个东西的

------解决方案--------------------
argc和argv是main函数的参数,跟文件没什么关系。

[a]$ cat x.c 
# include <stdio.h>

int main(int argc, char * argv[])
{
    int i;
    for (i = 0; i < argc; i++)
        printf("%s\n", argv[i]);

    return 0;
}
[a]$ ./x
./x
[a]$ ./x a b c
./x
a
b
c
[a]$ ./x a "b c"
./x
a
b c

另外要学会看函数的说明。