嵌入式开发-利用stat函数复制文件

记录一下前段时间学习的嵌入式开发笔记,在嵌入式开发板上,利用stat函数复制一个文件到新文本

代码如下,保存为.c文件

#include 
#include 
#include 
#include 
#include 
#include 
#include 

int main(int argc,char **argv)
{
    if(argc != 3)
    {
        printf("请输入正确的参数个数~~~\n");
        return -1;
    }
    
    //定义stat结构体
    struct stat s_buf;
    //获取你想要拷贝的文件的大小
    stat(argv[1],&s_buf);
    //将文件的大小类型转换为整型
    int f_size = (int)s_buf.st_size;
    //定义临时缓冲区用来存放文件的数据
    char f_buf[f_size];
    
    //打开被复制的文件
    int fd1 = open(argv[1],O_RDONLY);
    if(fd1 < 0)
    {
        printf("open fd1 failed\n");
        return -1;
        
    }
    //打开生成的文件
    int fd2 = open(argv[2],O_WRONLY|O_CREAT,0777);
    if(fd2 < 0)
    {
        printf("open fd2 failed\n");
        return -1;
    }
    
    //对文件进行读写复制
    int r_size = read(fd1,f_buf,f_size);
    if(r_size < 0)
    {
        printf("read fd1 failed\n");
        return -1;
    }
    printf("f_size is %d\n",f_size);
    printf("r_size is %d\n",r_size);
    write(fd2,f_buf,r_size);
    
    //关闭文件
    close(fd1);
    close(fd2);
    return 0;
}

在装了arm-linux-gcc的虚拟机中,文件目录下编译

arm-linux-gcc filename.c -o filename

上传开发版(略),文件授权(略)

执行

./filename file1 file2

你可能感兴趣的:(嵌入式开发-利用stat函数复制文件)