تابع fopen در زبان C برای باز کردن فایلهای متنی و باینری کاربرد دارد. این تابع دو پارامتر به شرح زیر می گیرد:
FILE *fopen(const char *filename, const char *mode)
پارامتر اول این تابع، مسیر فایل است و پارامتر دوم آن که محل بحث است نحوه ی باز کردن فایل است. این پارامتر می تواند گزینه های متعددی با ترکیب حروف اختصاری w,r,t,b و + داشته باشد. در این بین معمولا گزینه های +r و +w گیج کننده هستند که در ادامه تفاوت این دو را بیان می کنم:
+r یعنی فایل در مد خواندن باز می شود ولی امکان نوشتن هم دارید! نکته اش این است که اگر فایل از قبل وجود نداشته باشد، فایل ایجاد نخواهد شد.
+w یعنی فایل در مد نوشتن باز می شود ولی امکان خواندن هم دارید. تفاوتش با +r این است که اگر فایل وجود نداشت، فایل را ایجاد خواهد کرد.
گراف زیر تفاوت کامل این مدها را نمایش می دهد: