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));