【发布时间】: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
通常lseek 不适用于stdin。
但是,如果我这样运行我的程序会怎样:
./a.out < filename
现在stdin 是一个文件而不是键盘。
lseek 会在那里工作吗?
可以吗
lseek(0, -1, SEEK_CUR)
得到同样的效果
ungetc()?
【问题讨论】:
标签: c stdin io-redirection seek fcntl
是的,lseek 将更改搜索指针。不,它不等同于ungetc()。
fseek(stdin, -1, SEEK_CUR) 更接近于ungetc(),但仍不相同。
【讨论】:
lseek可以得到ungetc的效果吗?
ungetc的什么效果?
read()ing 来自文件描述符的字符,那么是的,lseek(-1) 对文件描述符的影响与ungetc 对FILE* 的影响相似.
ch = getchar(),您必须调用ungetc(ch, stdin)。您自相矛盾:“我正在研究文件描述符”与“我在 getcharing it”相反。