Home » C solved programs » C file handling programs

C program to copy number of bytes from specific offset to another file

// C program to copy N bytes of from a specific offset to another file.
#include <stdio.h>
#include <string.h>
 
int main(int argc,char *argv[])
{
    FILE *fp1;
    FILE *fp2;
     
    int count       = 0;
    int location    = 0;
    int totBytes    = 0;
     
    unsigned char data[1024];
     
    if( argc < 5 )
    {
        printf("Insufficient Arguments!!!\n");
        printf("Please use \"program-name source-file-name target-file-name offset N\" format.\n");
        return -1;
    }
     
    fp1 = fopen(argv[1],"r");
    if( fp1 == NULL )
    {
        printf("\n%s File can not be opened : \n",argv[1]);
        return -1;
    }
     
    fseek(fp1,0,SEEK_END);
     
    count    = ftell(fp1);
    location = atoi(argv[3]);       // offset of source file to copy
    totBytes = atoi(argv[4]);       // number of bytes to copy
     
    if( count < (location  + totBytes) )
    {
        printf("\nGiven number of bytes can not be copy, due to file size.\n");
        return -1;
    }
     
    fp2 = fopen(argv[2],"w");
    if( fp2 == NULL )
    {
        printf("\n%s File can not be opened\n",argv[2]);
        return -1;
    }
 
    fseek(fp1,location,SEEK_SET);
     
    fread(data,totBytes,1,fp1);
 
    fwrite(data,totBytes,1,fp2);
     
    data[totBytes]=0;
     
    printf("\nCopied content is : \"%s\"\n",data);
 
    fclose(fp1);
    fclose(fp2);
 
    return 0;
}

Output

First Run:
Terminal Command: ./prgCopy file1.txt file2.txt
Insufficient Arguments!!!
Please use "program-name source-file-name target-file-name offset N" format.

Second Run:
Terminal Command: ./prgCopy file1.txt file2.txt 0 10
Copied content is :
This is li





Comments and Discussions

Ad: Are you a blogger? Join our Blogging forum.





Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates


© https://www.includehelp.com some rights reserved.