根据手册,如果在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。
内部有两个流,STDIN
和STDOUT
。
"a"
——只编写。打开并写入文件的末尾,如果该文件不存在,则创建一个新文件。
"a+"
- Read/Write。通过写入到文件末尾来保留文件内容。
就在文档中,靠近顶部:
ftell()
给出未定义的结果仅用于附加流(以"a"标志打开)。