0
通常lseek
不適用於stdin
。lseek是否在文件重定向上工作?
但是,如果我像這樣運行我的程序:
./a.out < filename
現在stdin
是一個文件,而不是鍵盤。
請問lseek
在那裏工作?
我可以做
lseek(0, -1, SEEK_CUR)
,並得到像
ungetc()
同樣的效果?
通常lseek
不適用於stdin
。lseek是否在文件重定向上工作?
但是,如果我像這樣運行我的程序:
./a.out < filename
現在stdin
是一個文件,而不是鍵盤。
請問lseek
在那裏工作?
我可以做
lseek(0, -1, SEEK_CUR)
,並得到像
ungetc()
同樣的效果?
是的,lseek
將改變尋道指針。不,它不等於ungetc()
。
fseek(stdin, -1, SEEK_CUR)
更接近ungetc()
,但仍然不完全相同。
我可以使用'lseek'獲得'ungetc'的效果嗎? – Sam 2013-03-17 10:16:37
不一般。你在尋找什麼'ungetc'的效果? – 2013-03-17 10:17:59
我正在解析文本...我正在寫一個函數,如gettoken()從一個文件。但我正在做<或dup2並將文件重定向到stdin我正在讀取令牌字符,並且在解析標記時,最後一個字符(標記之後的一個字符)需要被推回...是否有任何系統調用等同於ungetc?因爲ungetc需要一個FILE * arg,並且我正在處理文件描述符...... – Sam 2013-03-17 10:23:16