【发布时间】:2017-06-07 12:56:14
【问题描述】:
我很难理解为什么lseek 函数很有用。
假设我从用户那里得到了这样的参数:
off_t offset = 10;
我想从偏移量读取 100 个字节。
我可以像这样使用pread:
void * buf = malloc(100);
if (buf == NULL) { exit(1);}
int res = pread(file_id, buf, 100, offset);
另一方面,我知道我可以像这样使用lseek 设置文件:
off_t seek = lseek(file_id, offset, SEEK_SET);
所以我相信我已经使用pread 实现了阅读。关于lseek,我错过了什么来帮助我阅读文件?
【问题讨论】:
-
lseek 和 pread 都不是标准 C++ 的一部分。或者标准 C,就此而言。
-
我的错,你会给它起什么名字? C? Linux?
-
它看起来更像 C 代码而不是 C++。我添加了一个 POSIX 标签。
-
@NeilButterworth 为什么这很重要?
-
@Galik 这个问题毫无意义。我们有这些标签来回答有关 posix 和 linux 的问题。我已经将其标记为 posix。