stdio(3)

الاسم
stdio - دوال مكتبة الإدخال/الإخراج القياسية

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <stdio.h>

extern FILE  *stdin;
extern FILE  *stdout;
extern FILE  *stderr;

الوصف
توفر مكتبة الإدخال/الإخراج القياسية واجهة إدخال/إخراج مخزنة بسيطة وفعالة للدفق. يُخطط الإدخال والإخراج في تدفقات بيانات منطقية وتُخفى خصائص الإدخال/الإخراج الفيزيائية. الدوال والوحدات الكلية مذكورة أدناه؛ تتوفر معلومات إضافية من صفحات الدليل الفردية.

يُربط الدفق بملف خارجي (قد يكون جهازًا فيزيائيًا) عبر فتح ملف، قد يتضمن إنشاء ملف جديد. إنشاء ملف موجود يؤدي إلى تجاهل محتوياته السابقة. إذا كان الملف يدعم طلبات التموضع (مثل ملف قرص، على عكس الطرفية)، فسيُوضع مؤشر موضع الملف المرتبط بالدفق في بداية الملف (البايت صفر)، ما لم يُفتح الملف بوضع الإلحاق. إذا استُخدم وضع الإلحاق، فغير محدد ما إذا كان مؤشر الموضع سيُوضع في بداية الملف أو نهايته. يُحافظ على مؤشر الموضع بواسطة عمليات القراءة والكتابة وطلبات التموضع اللاحقة. يحدث كل الإدخال كما لو أن المحارف قُرئت باستدعاءات متتالية لدالة fgetc(3)؛ يحدث كل الإخراج كما لو أن جميع المحارف كُتبت باستدعاءات متتالية لدالة fputc(3).

يُفصل الملف عن الدفق عبر إغلاق الملف. تُفرغ تدفقات الإخراج (تُنقل أي محتويات خبيئة غير مكتوبة إلى البيئة المضيفة) قبل فصل الدفق عن الملف. قيمة مؤشر لكائن FILE تكون غير محددة بعد إغلاق الملف (مهملة).

قد يُعاد فتح ملف لاحقًا، بتنفيذ نفس البرنامج أو برنامج آخر، وتُستعاد محتوياته أو تُعدل (إذا أمكن إعادة تموضعه في البداية). إذا عادت الدالة الرئيسية إلى المستدعي الأصلي، أو استُدعيت دالة exit(3)، فتُغلق جميع الملفات المفتوحة (وبالتالي تُفرغ جميع تدفقات الإخراج) قبل إنهاء البرنامج. طرق أخرى لإنهاء البرنامج، مثل abort(3)، لا تهتم بإغلاق الملفات بشكل صحيح.

عند بدء البرنامج، تُعرّف ثلاثة تدفقات نصية مسبقًا ولا تحتاج إلى فتح صريح: الإدخال القياسي (لقراءة الإدخال التقليدي)، الإخراج القياسي (لكتابة الإخراج التقليدي)، والخطأ القياسي (لكتابة الإخراج التشخيصي). تُختصر هذه التدفقات إلى stdin وstdout وstderr. عند فتحها، لا يكون دفق الخطأ القياسي مخزنًا بالكامل؛ تكون تدفقات الإدخال والإخراج القياسية مخزنة بالكامل إذا وفقط إذا لم تشير التدفقات إلى جهاز تفاعلي.

تدفقات الإخراج التي تشير إلى أجهزة طرفية تكون دائمًا مخزنة سطريًا مبدئيًا؛ يُكتب الإخراج المعلق لمثل هذه التدفقات آليًا كلما قُرئ دفق إدخال يشير إلى جهاز طرفي. في الحالات التي يُجرى فيها قدر كبير من الحساب بعد طباعة جزء من سطر على طرفية إخراج، من الضروري تفريغ fflush(3) الإخراج القياسي قبل الانطلاق والحساب حتى يظهر الإخراج.

مكتبة stdio هي جزء من المكتبة libc وتُحمل الإجراءات آليًا حسب الحاجة بواسطة cc(1). تشير أقسام الملخص في صفحات الدليل التالية إلى ملفات التضمين التي ستُستخدم، وكيف يبدو إعلان المترجم للدالة، والمتغيرات الخارجية ذات الاهتمام.

التالية مُعرّفة كوحدات كلية؛ لا يُعاد استخدام هذه الأسماء دون إزالة تعريفاتها الحالية أولاً باستخدام #undef: BUFSIZ، EOF، FILENAME_MAX، FOPEN_MAX، L_cuserid، L_ctermid، L_tmpnam، NULL، SEEK_END، SEEK_SET، SEEK_CUR، TMP_MAX، clearerr، feof، ferror، fileno، getc، getchar، putc، putchar، stderr، stdin، stdout. توجد إصدارات دوال للوحدات الكلية feof وferror وclearerr وfileno وgetc وgetchar وputc وputchar وتُستخدم إذا أُزيلت تعريفات الوحدات الكلية صراحةً.

  قائمة الدوال
الدالة | الوصف
clearerr(3) | فحص وإعادة تعيين حالة الدفق
fclose(3) | إغلاق دفق
fdopen(3) | دوال فتح الدفق
feof(3) | فحص وإعادة تعيين حالة الدفق
ferror(3) | فحص وإعادة تعيين حالة الدفق
fflush(3) | إفراغ دفق
fgetc(3) | الحصول على الحرف أو الكلمة التالية من دفق الإدخال
fgetpos(3) | إعادة تموضع دفق
fgets(3) | الحصول على سطر من دفق
fileno(3) | إرجاع واصف العدد الصحيح لدفق الوسيط
fmemopen(3) | فتح الذاكرة كدفق
fopen(3) | دوال فتح الدفق
fopencookie(3) | فتح دفق مخصص
fprintf(3) | تحويل مخرجات منسقة
fpurge(3) | إفراغ دفق
fputc(3) | إخراج حرف أو كلمة إلى دفق
fputs(3) | إخراج سطر إلى دفق
fread(3) | إدخال/إخراج التدفق الثنائي
freopen(3) | دوال فتح الدفق
fscanf(3) | تحويل تنسيق الإدخال
fseek(3) | إعادة تموضع دفق
fsetpos(3) | إعادة تموضع دفق
ftell(3) | إعادة تموضع دفق
fwrite(3) | إدخال/إخراج التدفق الثنائي
getc(3) | الحصول على الحرف أو الكلمة التالية من دفق الإدخال
getchar(3) | الحصول على الحرف أو الكلمة التالية من دفق الإدخال
gets(3) | الحصول على سطر من دفق
getw(3) | الحصول على الحرف أو الكلمة التالية من دفق الإدخال
mktemp(3) | إنشاء اسم ملف مؤقت (فريد)
open_memstream(3) | فتح تدفق مخزن ذاكرة ديناميكي
open_wmemstream(3) | فتح تدفق مخزن ذاكرة ديناميكي
perror(3) | رسائل أخطاء النظام
printf(3) | تحويل مخرجات منسقة
putc(3) | إخراج حرف أو كلمة إلى دفق
putchar(3) | إخراج حرف أو كلمة إلى دفق
puts(3) | إخراج سطر إلى دفق
putw(3) | إخراج حرف أو كلمة إلى دفق
remove(3) | إزالة مدخل الدليل
rewind(3) | إعادة تموضع دفق
scanf(3) | تحويل تنسيق الإدخال
setbuf(3) | عمليات التخزين المؤقت للدفق
setbuffer(3) | عمليات التخزين المؤقت للدفق
setlinebuf(3) | عمليات التخزين المؤقت للدفق
setvbuf(3) | عمليات التخزين المؤقت للدفق
sprintf(3) | تحويل مخرجات منسقة
sscanf(3) | تحويل تنسيق الإدخال
strerror(3) | رسائل أخطاء النظام
sys_errlist(3) | رسائل أخطاء النظام
sys_nerr(3) | رسائل أخطاء النظام
tempnam(3) | إجراءات الملفات المؤقتة
tmpfile(3) | إجراءات الملفات المؤقتة
tmpnam(3) | إجراءات الملفات المؤقتة
ungetc(3) | إعادة حرف إلى دفق الإدخال
vfprintf(3) | تحويل مخرجات منسقة
vfscanf(3) | تحويل تنسيق الإدخال
vprintf(3) | تحويل مخرجات منسقة
vscanf(3) | تحويل تنسيق الإدخال
vsprintf(3) | تحويل مخرجات منسقة
vsscanf(3) | تحويل تنسيق الإدخال

المعايير
C11, POSIX.1-2008.

التاريخ
C89, POSIX.1-2001.

انظر أيضًا
close(2), open(2), read(2), write(2), stdout(3), unlocked_stdio(3)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.