实现类似cp的功能,并且统计文件行数
/*************************************************************************
> File Name: fgp_copy.c
> Author: XXDK
> Email: v.manstein@qq.com
> Created Time: Mon 13 Mar 2017 12:25:28 AM PDT
************************************************************************/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, const char* argv[])
{
if(argc != 3) {
printf("usage <cmd src dest>\n");
exit(-1);
}
FILE* fp_src = fopen(argv[1], "r");
if(NULL == fp_src) {
perror("fopen error\n");
exit(-1);
}
FILE* fp_dest = fopen(argv[2], "w");
if(NULL == fp_dest) {
printf("fopne error\n");
fclose(fp_src);
exit(-1);
}
char buf[100] = {0};
char *ret = NULL;
unsigned line_count;
int len = 0;
while(1) {
ret = fgets(buf, 100, fp_src);
if(NULL == ret){
break;
}
// 检测每一行的 \n 换行符
len = strlen(buf);
if('\n' == buf[len - 1]) {
line_count++;
}
fputs(buf, fp_dest);
}
printf("line: %d\n", line_count);
return 0;
}