以下代码输出“非法搜索”:
#include <stdio.h>
#include <errno.h>
#include <string.h>
int main() {
errno = 0;
getchar();
getchar();
getchar();
ftell( stdin );
printf( "%s\n", strerror(errno) );
}
这发生在我跑步时cat script | ./a.out
以及我刚跑步时./a.out
。当然,问题出在 ftell 上。我的问题是:为什么会发生这种情况?我认为标准输入可以搜索。fseek 也会导致相同的错误。如果标准输入不可搜索,有什么方法可以做同样的事情吗?
谢谢您的回复。