A +和使用fopen()的模式



根据手册,如果在fopen()功能中选择a/a+模式,文件指针将放在最后。

但是为什么我得到0使用ftell()feof()仍然返回false ?如果文件指针在末尾

例句:

$handle=fopen("./file.txt","w");
fwrite($handle,1234567890);
fclose($handle);
$handle=fopen("./file.txt","a+");
echo getc($handle);
fclose($handle);

我得到了1,但如果文件指针放在末尾,我不应该得到0吗?

a+表示,从开始读到结束。

这就是为什么你从流返回一个char。

内部有两个流,STDINSTDOUT

"a"——只编写。打开并写入文件的末尾,如果该文件不存在,则创建一个新文件。

"a+" - Read/Write。通过写入到文件末尾来保留文件内容。

就在文档中,靠近顶部:

ftell()给出未定义的结果仅用于附加流(以"a"标志打开)。

最新更新