English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
دالة مكتبة C FILE *freopen(const char *filename, const char *mode, FILE *stream) اسم ملف جديد filename مع التدفق المفتوح المحدد stream التحكم، وإغلاق الملفات القديمة في التدفق.
هذا هو إعلان دالة freopen()
FILE *freopen(const char *filename, const char *mode, FILE *stream)
نمط | الوصف |
---|---|
"r" | فتح ملف لقراءة. يجب أن يكون الملف موجودًا. |
"w" | إنشاء ملف فارغ للاستخدام في الكتابة. إذا كان الاسم مشابهًا لملف موجود، يتم حذف محتويات الملف الموجود، ويتم اعتبار الملف كملف جديد فارغ. |
"a" | تضيف إلى ملف. تشغيل الكتابة يضيف بيانات إلى نهاية الملف. إذا لم يكن الملف موجودًا، يتم إنشاؤه. |
"r+" | فتح ملف لتحديث، يمكن قراءته وكتابته. يجب أن يكون الملف موجودًا. |
"w+" | إنشاء ملف فارغ لقراءة وكتابة. |
"a+" | فتح ملف لقراءة وتضيف. |
إذا تم فتح الملف بنجاح، فإن الدالة تعود إلى إشارة تشير إلى الوجهة التي يتم استخدامها لتحديد التدفق. وإلا، تعود إلى إشارة فارغة.
النموذج التالي يوضح استخدام دالة freopen()
#include <stdio.h> int main () { FILE *fp; printf("النص يتم توجيهه إلى stdout\n"); fp = freopen("file.txt", "w+", stdout); printf("النص يتم توجيهه إلى file.txt\n"); fclose(fp); return(0); {}
دعونا نعتمد ونشغل البرنامج المذكور أعلاه، سيتم إرسال الآتي إلى مخرج المعيارية STDOUT، لأننا لم نفتح مخرج المعيارية في البداية:
النص يتم توجيهه إلى stdout
في دعوة freopen() بعد ذلك، سيتم ربط مخرج المعيارية STDOUT بالملف file.txt، وبغض النظر عما كتبناه في مخرج المعيارية STDOUT، سيتم كتابته في file.txt، لذا سيكون محتويات ملف file.txt كالتالي.
النص يتم توجيهه إلى file.txt
الآن دعونا نستخدم البرنامج التالي لعرض محتويات الملف المذكور أعلاه:
#include <stdio.h> int main () { FILE *fp; int c; fp = fopen("file.txt","r"); while(1) { c = fgetc(fp); if( feof(fp) ) { break ; {} printf("%c", c); {} fclose(fp); return(0); {}