参见 std::ios_base::openmode
std::ios_base::openmode 流打开模式标志类型,代表流打开模式标志的位掩码类型。
模式含义说明std::ios_base::in打开文件进行读操作,即读取文件中的数据如果指定路径中没有包含该文件,不会创建,而且设置std::ios_base::badbit.std::ios_base::out打开文件进行写操作,即写入数据到文件果指定路径中并没有包含该文件,会创建一个新的.如果指定的路径中包含有该文件,那么打开后,会清空文件中内容,其实就是暗含了std::ios_base::truc.std::ios_base::in | std::ios_base::out打开文件进行读写操作如果指定的路径没有包含该文件,也不会创建,并且会设置std::ios_base::badbit.std::ios_base::app每次进行写入操作的时候都会重新定位到文件的末尾,尾部添加。如果指定路径不存在该文件那么创建一个.std::ios_base::ate打开文件之后立即定位到文件末尾如果指定的路径不存在该文件不会创建.std::ios_base::trunc打开文件,若文件已存在那么,清空文件内容如果指定的路径不存在该文件不会创建。如果指定的路径含有该文件那么清空文件中的内容。std::ios_base::binary以二进制的方式对打开的文件进行读写如果指定的路径不存在该文件不会创建eg:
log4cplus 创建 FileAppender 时,使用std::ios_base::app,新增日志会在日志文件末尾添加
log4cplus::SharedAppenderPtr fileAppender(new log4cplus::FileAppender(LOG4CPLUS_TEXT("log.txt"),std::ios_base::app));