【问题标题】:How to use lseek to read the last character of a file如何使用 lseek 读取文件的最后一个字符
【发布时间】:2011-06-11 13:57:07
【问题描述】:

我正在尝试使用 lseek 以相反的顺序从文件中读取字符。

到目前为止,我有:

 int finished = 1;
 char temp[1];

    while (finished > 0) {

 lseek(fileID,0,2);

 finished = read(fileID, &temp, 1);

 cout << temp[0];

    }

但读取总是返回 0。

有什么想法吗?

【问题讨论】:

    标签: c++ unix system-calls


    【解决方案1】:

    对 lseek() 的调用当然应该是

    lseek(fileID, -1, SEEK_END);
    

    你正在寻找文件的末尾,你需要短一个字节。

    【讨论】:

    • 注意零大小的文件,即检查来自lseek 的返回值以确保它没有失败。
    猜你喜欢
    • 2018-12-23
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 2018-06-06
    • 1970-01-01
    • 2014-08-03
    相关资源
    最近更新 更多