面试官问我,我将如何实现tail(是的,linux shell中的那个).我的回答是,首先寻找到文件的结尾,然后逐个读取字符,如果遇到a \n,意味着一行下降,等等等等等等.我认为我的答案是正确的.
然后我发现了这个问题,我应该用它来实现tail吗?我以为我可以简单地使用seekg(C++的东西?),但有人告诉我应该使用lseek(linux系统调用?).
那么包括fseek(ANSI C的东西?),我应该用哪个来实现tail?他们之间有什么大不同吗?
Fre*_*Foo 15
使用seekgC++ IOstreams库时使用.seekp这里没用,因为它设置了put指针.
使用fseekC stdio库时使用.使用lseek低级POSIX文件描述符I/O时使用.
各种搜索功能之间的区别只是它们运行的文件/流对象的类型.在Linux上,seekg并fseek很可能在以下方面实现的lseek.