我知道io.open(file, "w")
的作用是写入文件。但是我遇到了io.open(file, "w+")
,不知道"w+"的作用是什么?
io.open只是使用了C语言的fopen函数。您可以查看C语言中fopen的手册。
来自参考手册io.open
mode
字符串可以是以下任何一种:
- "r":读取模式(默认);
- "w":写入模式;
- "a":附加模式;
- "r+":更新模式,所有先前的数据都将被保留;
- "w+":更新模式,所有先前的数据都将被清除;
- "a+":追加更新模式,之前的数据被保留,仅允许在文件末尾进行写入。
更新模式指的是可以在关联文件上执行输入和输出。
我在运行于OpenWRT上的Lua 5.1中进行了测试,发现
file=io.open("/usr/share/result","w")
是相同的
file=io.open("/usr/share/result","w+")
这两个操作都会清空文件的当前内容并重新写入。
当我尝试时
file=io.open("/usr/share/result","a")
文件被追加了 - 每次我的代码运行时它都变得越来越长。
所以我认为没有区别。
"w"
模式,您只能将输出写入文件,而使用"w+"
模式,则可以执行输入和输出两种操作。 - Yu Hao"w"
和"w+"
如果它们真的是相同的吗? - Yu Hao