Next: , Previous: Filenames encoding, Up: The Implementation of Standard I/O

8.12 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.