ARM嵌入式linux复习心得总结2:
一、文件编程综合实验—文件拷贝
这里的文件拷贝实验是在昨天创建文件的基础之上的综合练习,由于是Linux应用编程的基础所以要求要非常的熟练,而文件拷贝更是重点中的综合应用,因此详细分析一下如何使用库函数,实现文件copy的功能。:
#include<>
#include<>
#include<>
#include<>
#define BUFFER_SIZE 1024 //定义buffer的空间长度
Int main(int argc,char *argv[])
{
FILE *from_file; //定义一个FILE类型的变量方便以后对文件的操作
FILE *to_file;
long file_len = 0; //记录文件大小作为数据传送的指标
char buffer[BUFFER_SIZE] //定义一个字符数据存储空间大小为BUFFER_SIZE
char *ptr;
if(argc! = 3) //argc表示字符串数量,这里一共应该有3个字符串(命令字符)故首先判断用户使用的命令是否正确(这个if语句常在Linux编程中出现,而且位置都差不多,因此最好将他记住便于后期编程使用)
{
Printf(“Usage:%s fromfile tofile\n”,argv[0]);\
Exit(1); //切记‘1’是出错返回
}
If((from_file = fopen(argv[1],”rb”))==NULL) //打开from_file文件,并将地址赋给from_file判断是否打开成功
{
Printf(“open %s error”,argv[2]);
Exit(1);
}
If((to_file=(argv[2],”wd”)) == NULL) //同上
{
Printf(“open %s error”,argv[2]);
Exit(1);
}
/*测的文件大小*/
Fseek(from_file,0L,SEEK_END);
File_len = ftell(from_file);
Fseek(from_file,0L,SEEK_SET);
Printf(“from file size is %d\n”,file_len);
/*文件拷贝!*/
While(!feof(from_file))
{
Fread(buffer,BUFFER_SIZE,1,from_file);
If(BUFFER_SIZE>=file_len)
{
Fwirte(buffer,file_len,1,to_file);
}
Else
{
Fwrite(buffer,BUFFER_SIZE,1,to_file);
File_len = file_len – BUFFER_SIZE;
}
Bzero(buffer,BUFFER_SIZE); //置字节字符串buffer的前BUFFER_SIZE个字节为零且包括‘\0’。
ARM嵌入式linux复习心得总结2 来自淘豆网m.daumloan.com转载请标明出处.