我无法理解C fopen api文档中“a”和“a +”选项的描述。 “a +”中的选项是追加和更新。这里更新一词的含义是什么?fopen函数中的a和a +选项有什么区别?
1
A
回答
6
这里是男人页(man fopen
)说:
一个
公开赛追加(在文件尾写)。如果文件 不存在,则创建该文件。流位于文件的末尾。
一个+
打开用于读取和追加(在文件末尾写入)。如果该文件不存在,则创建文件 。读取的初始文件位置在文件开始处为 ,但输出始终附加到文件末尾 。
这意味着:
为+: 指针最初是在该文件(读出)的开始,但是当写操作被尝试它被移动到的所述端文件。
1
是的,有一个重要的区别:
一个:追加数据文件,它可以更新文件写入末的一些数据;
一个+:在文件中附加数据,并更新它,这意味着它可以在结束写,并且还为能够读取该文件。
在只写日志都是适合一之实践的情况,但如果你还需要的文件中读一些(使用附加模式已经打开的文件),你需要使用“A +”。
相关问题
- 1. A a有什么区别?和A a();?
- 2. a,&a和* a有什么区别?
- 3. 函数参数中的A和A []有什么区别?
- 4. a ++和++ a或a--和--a在java中有什么区别?
- 5. 'a'和'a'有什么区别?
- 6. a + = b和a = + b之间的区别是什么,a ++和++ a?
- 7. A == B对B == A,有什么区别
- 8. Win32 API中的`A`和`W`函数有什么区别?
- 9. javascript中的a + 1和a - 1 +2有什么区别
- 10. Ruby中的object.method(a,b)和方法(a,b)有什么区别
- 11. MatLab中的[A,B]和[A; B]有什么区别?
- 12. php中的$ a和$$ a有什么区别?
- 13. 正则表达式中的“a {1}”和“a”有什么区别?
- 14. if(isset($ a))和if($ a)在php中有什么区别?
- 15. 在JavaScript中,var a = 5有什么区别。和var a = 5?如
- 16. lodash中cloneDeep(a)和extend({},a)有什么区别?
- 17. flash(a,b)和flash()。put(a,b)在PlayFramework中有什么区别?
- 18. 在git中,A..B和A ... B有什么区别?
- 19. “new A()”和“A.newInstance()”有什么区别?
- 20. libboost_math_c99f.a和libboost_math_c99.a有什么区别?
- 21. '&self'和'&'a self'有什么区别?
- 22. 'open -a TextMate.app'和'mate'有什么区别?
- 23. p和a有什么区别?
- 24. .so和.a文件有什么区别?
- 25. .lib和.a文件有什么区别?
- 26. a = a + b和a + = b之间的区别是什么?
- 27. Python - “a”和“a”的区别?
- 28. 列表(a)和[a]之间有什么区别?
- 29. “long int a = 2”和“int a = 2L”有什么区别?
- 30. a // b和int(a/b)之间有什么区别?
不要轻易相信 - 不是所有的手册页都是一样的。我说:“写作开放。如果该文件不存在,则会创建该文件。流位于文件的末尾。随后对文件的写入将始终结束于当前文件的结尾,而不管任何介入fseek(3)或类似的.'和'a + Open用于读取和写入。如果该文件不存在,则会创建该文件。流位于文件的末尾。后续对文件的写入操作将始终结束于文件的当前结束位置,而不管任何干预fseek(3)或类似操作。' –
快速测试显示首次读取非空文件(在任何写入之前)返回EOF。所以在这种情况下它从结尾读取。这是在Mac OS X上。 –