简体   繁体   中英

What is the difference between “rb+” and “ab” in fopen()?

I do not understand the difference between the "ab" and "rb+" modes when using fopen() in C.

Why would I choose one instead of the other?

With the mode specifiers above the file is open as a text file. In order to open a file as a binary file, a "b" character has to be included in the mode string. This additional "b" character can either be appended at the end of the string (thus making the following compound modes: "rb" , "wb" , "ab" , "r+b ", "w+b" , "a+b" ) or be inserted between the letter and the "+" sign for the mixed modes ( "rb+" , "wb+" , "ab+" ).

From fopen documentation which I advise you read before asking questions. It will give you a lot of information about possible parameters, return values, similar functions etc.

Also, from the same document :

"a" = append : Open file for output at the end of a file. Output operations always write data at the end of the file, expanding it. Repositioning operations ( fseek , fsetpos , rewind ) are ignored. The file is created if it does not exist.

"r+" = read/update : Open a file for update (both for input and output). The file must exist.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM