gets(3)

الاسم
gets - الحصول على سلسلة محارف من المدخلات القياسية (مُهجور)

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

موجز
#include <stdio.h>

[[deprecated]] char *gets(char *s);

الوصف
لا تستخدم هذه الدالة أبدًا.

تقرأ gets() سطرًا من stdin في المخزن المؤقت المُشار إليه بواسطة s حتى سطر جديد منتهٍ أو EOF، والذي تستبدله ببايت فارغ ('\0'). لا يُجرى أي فحص لتجاوز سعة المخزن المؤقت (انظر الأخطاء أدناه).

قيمة الإرجاع
تُرجع gets() s عند النجاح، وNULL عند حدوث خطأ أو عند نهاية الملف بينما لم تُقرأ أي محارف. ومع ذلك، نظرًا لعدم وجود فحص لتجاوز سعة المخزن المؤقت، لا يمكن ضمان أن الدالة ستعود حتى.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
gets() | سلامة الخيوط | MT-Safe

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

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

يهجر LSB gets(). يُصنف POSIX.1-2008 gets() كمُتقادم. يزيل ISO C11 مواصفات gets() من لغة C، ومنذ glibc 2.16، لا تُظهر ملفات رأس glibc إعلان الدالة إذا كان ماكرو اختبار الميزة _ISOC11_SOURCE مُعرَّفًا.

العلل
لا تستخدم gets() أبدًا. لأنه من المستحيل معرفة عدد المحارف التي ستقرأها gets() دون معرفة البيانات مسبقًا، ولأن gets() ستستمر في تخزين المحارف بعد نهاية المخزن المؤقت، فاستخدامها خطير جدًا. استُخدمت لاختراق أمن الحاسوب. استخدم fgets() بدلاً من ذلك.

لمزيد من المعلومات، انظر CWE-242 (المعروف أيضًا باسم "استخدام دالة خطيرة بطبيعتها") على http://cwe.mitre.org/data/definitions/242.html

انظر أيضًا
read(2), write(2), ferror(3), fgetc(3), fgets(3), fgetwc(3), fgetws(3), fopen(3), fread(3), fseek(3), getline(3), getwchar(3), puts(3), scanf(3), ungetwc(3), unlocked_stdio(3), feature_test_macros(7)

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

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

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