gpt4 book ai didi

c - 保存/复制文件指针/描述符

转载 作者:行者123 更新时间:2023-11-30 15:57:05 25 4
gpt4 key购买 nike

我有一个要求,其中有一个全局 FILE指针/描述符。其中一个函数将从该指针/描述符中读取。与FILE指针/描述符相关联的内部指针前进。此函数返回后,我想从同一个 FILE 指针/描述符中读取数据,并与其他函数读取相同的数据。

但是我无法读取相同的精确数据,因为内部指针已经前进。 复制描述符不起作用,因为副本反射(reflect)了原始描述符。在读取之前保存 FILE 指针也不起作用,因为它是一个指针,并且将再次开始引用同一事物。

一种替代方法是在读取之前使用 fgetpos() 保存文件位置,并在下次读取之前使用 fsetpos()

但这适用于文件指针而不是描述符。

使用普通指针就很容易了。但是使用 FILE 指针会让事情变得困难。

还有其他不笨拙的方法来实现这一点吗?

最佳答案

如果您指的是 POSIX 文件描述符,听起来您正在寻找 lseek()

off_t off;

off = lseek(fd, 0, SEEK_CUR); /* get current offset */
/* do some read(s) */
lseek(fd, off, SEEK_SET);

关于c - 保存/复制文件指针/描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10703189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com