Open Modes (GNAT Reference Manual)

### 11.13 Open Modes ¶

`Open` and `Create` calls result in a call to `fopen` using the mode shown in the following table:

`Open` and `Create` Call Modes |  |
--- | --- | ---
| ‘OPEN’ | ‘CREATE’
Append_File | “r+” | “w+”
In_File | “r” | “w+”
Out_File (Direct_IO) | “r+” | “w”
Out_File (all other cases) | “w” | “w”
Inout_File | “r+” | “w+”

If text file translation is required, then either `b` or `t` is added to the mode, depending on the setting of Text. Text file translation refers to the mapping of CR/LF sequences in an external file to LF characters internally. This mapping only occurs in DOS and DOS-like systems, and is not relevant to other systems.

A special case occurs with Stream_IO. As shown in the above table, the file is initially opened in `r` or `w` mode for the `In_File` and `Out_File` cases. If a `Set_Mode` operation subsequently requires switching from reading to writing or vice-versa, then the file is reopened in `r+` mode to permit the required operation.