C中的fclose()函数默认附加EOF字符吗?

时间:2016-05-07 18:10:06

标签: c

我知道在C ++中,EOF字符会自动附加到文件末尾,例如filestream.close。我想知道,这也是在C中完成的吗?

4 个答案:

答案 0 :(得分:6)

ThreadPool.QueueUserWorkItem((s) => { var keeprunning = true; sourceStream.RecordingStopped += (rss, rse) => { keeprunning = false; }; while(keeprunning) { if (writebuffer.Count==0) { Thread.Sleep(0); } else { var buf = writebuffer.Dequeue(); waveWriter.Write(buf,0,buf.Length); // Thread.Sleep(100); // for testing } } waveWriter.Dispose(); waveWriter = null; }); 不是角色。它是某些操作返回的非字符EOF值,表示已到达文件末尾。所以问题就变成了#34; C中的int函数是否会关闭文件"当然是这样的。

答案 1 :(得分:1)

没有EOF个字符。 EOF根据定义" 不等于任何有效的字符代码"。通常是-1。它不会在任何时候写入文件。

DOS中有一个历史 EOF 字符值(CTRL+Z),但它现在已经过时了。

要回答您的问题fclosefilestream.close非常相似,请关闭该文件。

另请参阅:reference answer

答案 2 :(得分:1)

如果 有一个明确的文件结束字符需要写入文件,那么是的,fclose会安排写它。你不必自己写。

例如,曾几何时,MS-DOS下的文本文件在其末尾具有显式的control-Z文件结束字符。在那个操作系统下的C语言中,我希望在调用fclose时写入control-Z字符。 (但话虽如此,自从使用MS-DOS以来已经很久了,我不能说我记得肯定会看到这种情况发生。)

今天,正如其他答案所说,我们关心的操作系统都不需要磁盘文件中明确的文件结束字符,所以这个问题没有实际意义。

答案 3 :(得分:0)

确实如此,但不是作为角色。(请参阅您的问题中的评论) 但是,您甚至可以使用(feof(file))进行检查。它就像一个国家。