【问题标题】:fseek for fd (int fd instead of FILE*)fseek for fd (int fd 而不是 FILE*)
【发布时间】:2010-12-10 05:00:42
【问题描述】:

fd 是否有 fseek 的等价物?我用int fds很久了,想用fseek……但我知道没有seek功能。

提前致谢!

【问题讨论】:

    标签: c file


    【解决方案1】:

    见POSIX函数lseek(2)

    概要

    #include <unistd.h>
    
    off_t
    lseek(int fildes, off_t offset, int whence);
    

    说明

    lseek() 函数根据指令whence 将文件描述符fildes 的偏移量重新定位到参数offset。参数fildes 必须是打开的文件描述符。

    【讨论】:

    • 有谁知道lseek函数的历史,特别是l的原因?我一直怀疑l 代表long,因为原始偏移量参数类型是long,而在16 位int 类型的时代,seek 原型函数采用@987654335偏移量的 @ 参数对于处理文件很快就会变得无用。
    • @R..:John Lion 的 UNIX V6 源代码(在网上找到)确实表明版本 6 只有一个 seek 采用 int 偏移量。第 7 版手册(也可在线找到)显示没有 seek,而是 lseek 采用 long 偏移量。我也只是猜测,但你的猜测对我来说似乎不错。
    猜你喜欢
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 2021-05-13
    相关资源
    最近更新 更多