c/c++语言开发共享ftell(stdin)导致非法搜索错误

以下代码输出“非法搜索”:

#include  #include  #include  int main() { errno = 0; getchar(); getchar(); getchar(); ftell( stdin ); printf( "%sn", strerror(errno) ); } 

当我运行“cat script | ./a.out”以及运行“./a.out”时,会发生这种情况。 问题在于ftell,当然。 我的问题是:为什么会发生这种情况? 我认为stdin可以寻找。 fseek也会导致同样的错误。 如果stdin不可寻找,有什么方法可以做同样的事情吗?

谢谢您的回复。

    Fifos不可寻求。 它们只是一个缓冲区。 一旦从fifo缓冲区read()数据read() ,就永远无法检索它。

    请注意,如果您运行程序:

    需要了解更多c/c++开发分享ftell(stdin)导致非法搜索错误,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!

     ./a.out < script 

    然后标准输入将是一个文件而不是fifo ,因此ftell()将按照您的期望进行。

    以上就是c/c++开发分享ftell(stdin)导致非法搜索错误相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

    本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

    ctvol管理联系方式QQ:251552304

    本文章地址:https://www.ctvol.com/c-cdevelopment/978898.html

    (0)
    上一篇 2021年12月12日
    下一篇 2021年12月12日

    精彩推荐