الاسم
- Provided by: manpages-ar-dev (Version: 4.31.0-1)
- Source: manpages-l10n
- Report a bug
مكتبة سي المعيارية (libc، -lc)
#include <stdio.h>
size_t fread(size_t size, size_t n;
void ptr[restrict size * n],
size_t size, size_t n,
FILE *restrict stream);
size_t fwrite(size_t size, size_t n;
const void ptr[restrict size * n],
size_t size, size_t n,
FILE *restrict stream);
الدالة fread() تقرأ n عنصرًا من البيانات، كل منها بطول size بايت، من الدفق المشار إليه بـ stream، وتخزنها في الموقع المعطى بـ ptr.
الدالة fwrite() تكتب n عنصرًا من البيانات، كل منها بطول size بايت، إلى الدفق المشار إليه بـ stream، وتستمدها من الموقع المعطى بـ ptr.
للحصول على نظائر غير مقفلة، انظر unlocked_stdio(3).
عند النجاح، fread() و fwrite() تُرجعان عدد العناصر المقروءة أو المكتوبة. هذا العدد يساوي عدد البايتات المنقولة فقط عندما يكون size هو 1. إذا حدث خطأ، أو تم الوصول إلى نهاية الملف، تكون القيمة المُرجَعة عدد عناصر قصير (أو صفر).
مؤشر موضع الملف للدفق يُقدَّم بعدد البايتات التي تمت قراءتها أو كتابتها بنجاح.
fread() لا تفرق بين نهاية الملف والخطأ، ويجب على المستدعين استخدام feof(3) و ferror(3) لتحديد أيهما حدث.
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
| الواجهة | السمة | القيمة |
| fread()، fwrite() | سلامة الخيوط | MT-Safe |
C11, POSIX.1-2008.
POSIX.1-2001، C89.
البرنامج أدناه يوضح استخدام fread() عن طريق تحليل الملف التنفيذي ELF /bin/sh في الوضع الثنائي وطباعة سحره وفئته:
$ ./a.out; ELF magic: 0x7f454c46 Class: 0x02
#include <stdcountof.h>
#include <stdio.h>
#include <stdlib.h>
int
main(void)
{
FILE *fp;
size_t ret;
unsigned char buffer[4];
fp = fopen("/bin/sh", "rb");
if (!fp) {
perror("fopen");
return EXIT_FAILURE;
}
ret = fread(buffer, sizeof(*buffer), countof(buffer), fp);
if (ret != countof(buffer)) {
fprintf(stderr, "fread() failed: %zu\n", ret);
exit(EXIT_FAILURE);
}
printf("ELF magic: %#04x%02x%02x%02x\n", buffer[0], buffer[1],
buffer[2], buffer[3]);
ret = fread(buffer, 1, 1, fp);
if (ret != 1) {
fprintf(stderr, "fread() failed: %zu\n", ret);
exit(EXIT_FAILURE);
}
printf("Class: %#04x\n", buffer[0]);
fclose(fp);
exit(EXIT_SUCCESS);
}
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.