小编Kel*_*vin的帖子

更清晰的用途是什么?

我试图了解何时clearerr()应使用stdio函数。

例如,如果我fread()fwrite()某人有效FILE*并且得到了一个短计数并且ferror为真,我该怎么办?

从我至今读,fread()并且fwrite()功能强大且将阻止和/或重试(如果有锁和/或可能在较低水平的功能发生中断),因而似乎永远不会任何点使用clearerr(),因为freadfwrite错误会被如此灾难性的,试图恢复毫无意义。

此外,ferror()仅告诉我有错误,而不是错误。

   #define SZ 1024
   FILE* fp = fopen( "foo", "r" );
   if ( fp ) {
      char b[SZ];
      int ch_count = fread( b, sizeof(char), SZ, fp );
      if ( ch_count != SZ && ferror( fp ) ) {
          // how would clearerr() be used. I don't know? 
          // ....
          // should I drop through here …
Run Code Online (Sandbox Code Playgroud)

c

7
推荐指数
1
解决办法
169
查看次数

标签 统计

c ×1