fwrite
من cppreference.com
<tbody>
</tbody> <tbody class="t-dcl-rev ">
</tbody><tbody> </tbody>| معرفة في ملف <stdio.h>
|
||
size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream ); |
(حتى C99) | |
size_t fwrite( const void *restrict buffer, size_t size, size_t count, FILE *restrict stream ); |
(منذ C99) | |
تكتب عدد count من الكائنات في مصفوفة معطاة buffer إلى تيار الإخراج المعطى stream. لا يتم محاولة ترجمة المدخلات باي شكل من الأشكال.
المعطيات
| buffer | - | مؤشر إلى مصفوفة سيتم كتابة الكائنات الموجودة فيها |
| size | - | حجم كل كائن بالبايت |
| count | - | عدد الكائنات التي سيتم كتابتها |
| stream | - | تيار البيانات المراد الكتابة فيه |
القيمة المُرجعة
عدد الكائنات التي كُتبت بنجاح.
مثال
fwrite مع التأكد من عدم حدوث أخطاء
قم بتشغيل هذا الكود:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
// write buffer to file
FILE *f1;
char buffer[] = { 'x' , 'y' , 'z' };
f1 = fopen("file.bin", "wb");
int ret_code = fwrite(buffer, sizeof(char), sizeof(buffer), f1);
if (ret_code < (int)sizeof(buffer))
if (ferror(f1))
{
perror("fwrite()");
fprintf(stderr,"fwrite() failed in file %s at line # %d\n", __FILE__,__LINE__-5);
exit(EXIT_FAILURE);
}
fclose(f1);
// read the same data and print it to the standard output
FILE *f2;
char rbuf[10];
f2 = fopen("file.bin", "rb");
const char* res = fgets(rbuf, sizeof(rbuf), f2);
fclose(f2);
if (res) { // points to rbuf on read success, NULL on failure
puts(res);
}
return EXIT_SUCCESS;
}
الخرج:
xyz
أنظر أيضا
| تطبع خرج منسق في stdout أو تيار ملف أو Buffer (دالة) | |
| تكتب سلسلة من الحروف إلى داخل تيار ملف. (دالة) | |
| تقرأ من ملف (دالة) | |
مقالة مرجع C++ عن fwrite
| |