pread

preadはオフセットを指定してファイルを読み書きできるように、readシステムコールを改変したものです。

#define _XOPEN_SOURCE 500
#include < unistd.h >

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

int main()
{
    int fd_r, fd_w;
    ssize_t n;
    char buf[256];
    
    if ((fd_r = open("file1.txt", O_RDONLY)) < 0){
        perror("open(file1.txt)");
        return 1;
    }
    if ((fd_w = open("file2.txt", O_WRONLY|O_CREAT, 0666)) < 0){
        perror("open(file2.txt)");
        return 1;
    }
    if ((n = pread(fd_r, buf, sizeof buf, 10))< 0){
        perror("pread");
        return 1;
    }
    
    if (pwrite(fd_w, buf, n, 10)<0) {
        perror("pwrite");
        return 1;
    }
    return 0;
}