#include <fstream>
#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main(int argc, char** argv) {

    if (argc <= 4) {
        cout << "Not enough parameters\n";
        cout << "Usage: " << argv[0] << ": <infile> <outfile> <offset> <size>\n";
        return 0;
    }

    string infile(argv[1]);
    string outfile(argv[2]);
    istream::off_type offset;
    istream::off_type length;

    stringstream(argv[3]) >> offset;
    stringstream(argv[4]) >> length;


    ifstream in(infile.c_str());

    in.seekg(offset);

    char* data = new char[length];
    in.read(data,length);
    in.close();

    ofstream out(outfile.c_str());
    out.write(data,length);
    out.close();
    delete[] data;
    return 0;
}