Io 为什么';t a+;你在这里工作吗?

Io 为什么';t a+;你在这里工作吗?,io,d,Io,D,根据官方D书: a+:读取和附加访问权限。 如果文件不存在,则创建为空 如果该文件已存在,则会保留其内容,并打开该文件,以便从头开始读取,最后写入 但如果我执行以下操作,它不会从文件中读取任何内容: import std.stdio; void main() { File fh = File("/tmp/x.mail", "a+"); string line; while((line = fh.readln()) !is null) { write(li

根据官方D书:

a+:读取和附加访问权限。 如果文件不存在,则创建为空 如果该文件已存在,则会保留其内容,并打开该文件,以便从头开始读取,最后写入

但如果我执行以下操作,它不会从文件中读取任何内容:

import std.stdio;

void main() {
    File fh = File("/tmp/x.mail", "a+");
    string line;
    while((line = fh.readln()) !is null) {
        write(line);
    }
}
我在OSX 10.9上,编译器是ldc2。

来自:

打开“a+”进行读写操作。如果文件不存在,则创建该文件。流位于文件的末尾。对文件的后续写入将始终以文件的当前结尾结束,而不考虑任何中间fseek(3)或类似内容。

我很确定Phobos在MacOS X上的后台使用fopen()打开该文件,因此流位于末尾。尝试调用fseek(),然后从以下位置读取。

打开“a+”进行读写操作。如果文件不存在,则创建该文件。流位于文件的末尾。对文件的后续写入将始终以文件的当前结尾结束,而不考虑任何中间fseek(3)或类似内容。


我很确定Phobos在MacOS X上的后台使用fopen()打开该文件,因此流位于末尾。试着调用fseek(),然后阅读。

对我有用。。。您确定该文件确实存在并且有内容吗?是的,它确实有内容。你用什么操作系统?linux。你在做什么?^据报道,他在OSX 10.9上。为了确认这确实是一个a+问题的可能性,你能用“r”模式来代替它,看看它是否输出任何东西吗?“r”模式工作得很好。对我来说工作得很好。。。您确定该文件确实存在并且有内容吗?是的,它确实有内容。你用什么操作系统?linux。你在做什么?^据报道,他在OSX 10.9上。为了确认这确实是一个a+问题的可能性,您是否可以使用“r”模式,看看它是否输出任何东西?“r”模式工作得非常好。