Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

c

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?

like image 588
Jox Avatar asked Jan 04 '23 00:01

Jox


1 Answers

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.

like image 109
Badda Avatar answered Feb 03 '23 05:02

Badda