美文网首页
嵌入式开发-利用stat函数复制文件

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

作者: 一切不如学习 | 来源:发表于2018-09-11 23:07 被阅读0次

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

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

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <dirent.h>

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函数复制文件

      本文链接:https://www.haomeiwen.com/subject/acbpgftx.html