• linux 将一个文件分解成多个不同名文件


    1.通过c直接实现

    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <unistd.h>
    
    int fileNum=0;
    char fileNam[10];
    
    char fileName(){
        fileNam[10]=0;
        fileNum += 1;
        char str[4];
        char s1[]="./image/";
        char s2[]=".yuv";
        sprintf(str,"%d",fileNum);
        sprintf(fileNam,"%s%s%s",s1,str,s2);     
    }
    
    int main(int argc,char* argv[])
    {
        int fd_src,fd_dst;
        char buf[245120];
        int n;
        
        if((fd_src=open("./raw.data",O_RDONLY))<0)
        {
            perror("open src");
            exit(EXIT_FAILURE);
        }
        
        while((n=read(fd_src,buf,sizeof(buf)))>0){
            if (n != 245120)
            {
                perror("file size small");
                close(fd_src);
                exit(EXIT_FAILURE);
            }
    
            //lseek(fd_src,245120,SEEK_CUR);
            fileName();    
                    
            if (fd_dst = open(fileNam,O_CREAT|O_WRONLY,0666)<0)
            {
                perror("open dst fail");
                close(fd_src);
                exit(EXIT_FAILURE);
            }
        
            write(fd_dst,buf,n);
        
            printf("copy successfully
    ");
            close(fd_dst);
            system("./move.sh");
        }
        printf("copy successfully
    ");
        close(fd_src);
        exit(EXIT_SUCCESS);    
    }
    View Code

    2.通过调用system函数执行脚本

    #! /bin/sh 
    
    file_name(){
        rm ./image/1.txt
        touch ./image/1.txt
        chmod 777 ./image/1.txt
        ls -l image | cut -d ' ' -f 10 | cut -d '.' -f 1 > ./image/1.txt
        num=$(tail ./image/1.txt -n 1)
        echo "$num"
        num=$(($num+1))
        echo "$num"
    }
    move (){
        file_name
        mv ./image/0.yuv ./image/"$num".yuv    
    }
    move
    View Code
  • 相关阅读:
    Java基础-算法
    Java基础-语法-下
    Java基础-语法-上
    数据清洗工作日志
    docker login 登陆总是不成功
    SpringCloud启动eureka server报错ArrayStoreException,TypeNotPresentExceptionProxy
    pve开机提示volume group ‘pve’ not found问题
    java生成pdf字体的坑
    TwelveMonkeys处理图片
    实验6 流类库与I/O
  • 原文地址:https://www.cnblogs.com/Malphite/p/7468293.html
Copyright © 2020-2023  润新知