gpt4 book ai didi

c++ - `fseek`、 `lseek`、 `seekg`、 `seekp` 之间有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 22:04:40 32 4
gpt4 key购买 nike

一位面试官问我如何实现 tail(是的,linux shell 中的那个)。我的回答是,先寻找到文件的末尾,然后一个接一个地向前读取字符,如果遇到 \n,则表示一行已关闭,等等。我认为我的答案是正确的。

然后我发现了这个问题,我应该用哪个seek来实现tail?我以为我可以简单地使用 seekg (C++ 的东西?),但有人告诉我应该使用 lseek (linux 系统调用?)。

那么包括fseek(ANSI C的东西?),我应该使用哪一个来实现tail?它们之间有什么大的区别吗?

最佳答案

在使用 C++ IOstreams 库时使用 seekgseekp 在这里没有用,因为它设置了 put 指针。

使用 C stdio 库时使用 fseek。使用低级 POSIX 文件描述符 I/O 时使用 lseek

各种查找函数之间的区别只是它们操作的文件/流对象的类型。在 Linux 上,seekgfseek 可能以 lseek 的形式实现。

关于c++ - `fseek`、 `lseek`、 `seekg`、 `seekp` 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9349470/

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