块引用
O.S怎么知道作家还在写作。 ?... EOF for file的工作流程是什么(关闭文件句柄,如^ D或^ z)? 如果从未写过EOF会怎么样?
如果读者的阅读速度快于作家的写作速度,会发生什么?速率不匹配会导致死锁吗?可能是其他不需要的场景?
O.S在读取文件时如何计算EOF?
-Nikhil
P.S:当前的操作系统是windows,但我不介意在unix上同样学习有趣的功能。
块引用
有关该问题的更多编辑和更多信息
现在我知道EOF没有字符,所以它不能写在文件数据上。如果O.S.使用File_size确定EOF,就像@saurabh指出的那样。
( - >)阅读时的EOF (可能会根据存储在相应文件系统的驱动器表中的文件大小来确定))
答案 0 :(得分:0)
直到程序不要关闭文件。操作系统假定可以读取/写入文件或两者都有(取决于打开文件的模式)。
EOF什么都不是,但OS从文件大小知道它。可以说,你的文件大小为100字节,你要求从字节99读取并再请求6个字节,然后OS知道该文件只有100个字节,所以它将返回EOF。
答案 1 :(得分:0)
如果您从一个进程写入文件并从另一个进程读取文件,则可能需要考虑使用管道。这些是专门为您的目的而设计的特殊文件:您只能在一端写入,在另一端读取,读取器阻止或在没有任何数据要读取时通知...
是的,没有特殊的EOF标记。如果使用普通文件并且您不喜欢头痛,请不要在多个进程中同时使用它们。