[ios.openmode]
# 31 Input/output library [[input.output]](./#input.output)
## 31.5 Iostreams base classes [[iostreams.base]](iostreams.base#ios.openmode)
### 31.5.2 Class ios_base [[ios.base]](ios.base#ios.openmode)
#### 31.5.2.2 Types [[ios.types]](ios.types#ios.openmode)
#### 31.5.2.2.4 Type ios_base::openmode [ios.openmode]
[ð](#lib:openmode,ios_base)
`using openmode = T3;
`
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L1075)
The typeopenmode is a bitmask type ([[bitmask.types]](bitmask.types "16.3.3.3.3 Bitmask types"))[.](#1.sentence-1)
It contains the elements indicated in Table [139](#tab:ios.openmode "Table 139: openmode effects")[.](#1.sentence-2)
Table [139](#tab:ios.openmode) — openmode effects [[tab:ios.openmode]](./tab:ios.openmode)
| [ð](#tab:ios.openmode-row-1)
**Element** | **Effect(s) if set** |
| --- | --- |
| [ð](#tab:ios.openmode-row-2)
app | seek to end before each write |
| [ð](#tab:ios.openmode-row-3)
ate | open and seek to end immediately after opening |
| [ð](#tab:ios.openmode-row-4)
binary | perform input and output in binary mode (as opposed to text mode) |
| [ð](#tab:ios.openmode-row-5)
in | open for input |
| [ð](#tab:ios.openmode-row-6)
noreplace | open in exclusive mode |
| [ð](#tab:ios.openmode-row-7)
out | open for output |
| [ð](#tab:ios.openmode-row-8)
trunc | truncate an existing stream when opening |