如何从文件类型中读取特定的字节选择?

时间:2014-05-07 03:05:53

标签: c file file-io

我需要从正在处理的项目的文件类型中读取一组特定的字节。

例如,假设我们有以下名为“image”的打开文件:

    int fd = open(image, O_RDWR, S_IRWXU);

假设我需要从一开始的偏移开始读取此文件的特定部分,例如,从1024字节开始并以2048字节结束到文件中的部分。

我知道我们已阅读(),

    int rd = read(fd, &example, sizeof(1024));

这将读入“example”,前1024个字节。

我知道fseek存在,它会设置一个指针从我想要开始阅读“示例”开始,但只有我有一个FILE类型,对吧?我目前只有一个名字,它是fd,

    char *image;
    int fd;

我可以在fseek中使用file_name或fd吗?或者有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

在Linux上,' pread()'诀窍:

ssize_t pread(int fd, void *buf, size_t count, off_t offset);

它将寻求“抵消”,然后阅读' count' bytes int' buf'。

答案 1 :(得分:1)

lseekfseek的等效函数,使用文件描述符而不是FILE指针。您也可以使用pread,如Mahonri Moriancumer所说。