【问题标题】:Does lseek work on file redirection?lseek 是否适用于文件重定向?
【发布时间】:2013-03-17 10:08:50
【问题描述】:

通常lseek 不适用于stdin

但是,如果我这样运行我的程序会怎样:

./a.out < filename

现在stdin 是一个文件而不是键盘。

lseek 会在那里工作吗?

可以吗

lseek(0, -1, SEEK_CUR)

得到同样的效果

ungetc()?

【问题讨论】:

    标签: c stdin io-redirection seek fcntl


    【解决方案1】:

    是的,lseek 将更改搜索指针。不,它不等同于ungetc()

    fseek(stdin, -1, SEEK_CUR) 更接近于ungetc(),但仍不相同。

    【讨论】:

    • 使用lseek可以得到ungetc的效果吗?
    • 一般不会。你要ungetc的什么效果?
    • 我正在解析文本...我正在从文件中编写一个类似 gettoken() 的函数。但是我正在执行
    • 如果你是 read()ing 来自文件描述符的字符,那么是的,lseek(-1) 对文件描述符的影响与ungetcFILE* 的影响相似.
    • 要撤消ch = getchar(),您必须调用ungetc(ch, stdin)。您自相矛盾:“我正在研究文件描述符”与“我在 getcharing it”相反。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 2012-08-12
    • 2021-10-16
    • 2019-03-20
    • 2011-09-21
    • 2014-04-16
    相关资源
    最近更新 更多