Stdin وStdout ووسائط Process
إنشاء برامج CLI تفاعلية
Stdin وStdout ووسائط Process درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.
التدفقات القياسية الثلاثة
تتواصل برامج سطر الأوامر عبر ثلاث قنوات: stdin للإدخال، وstdout للمخرجات العادية، وstderr للأخطاء.
stdout مقابل print
تضيف print سطراً جديداً وترسل المخرجات إلى stdout. ولتحكم أدق، اكتب مباشرةً باستخدام stdout.write، فلن يُضاف أي سطر جديد.
stdout.write('Loading');تُرسل الأخطاء إلى stderr
أرسل التحذيرات إلى stderr وليس stdout. يحافظ ذلك على نظافة المخرجات الفعلية عندما يمرر المستخدمون برنامجك إلى برنامج آخر.
stderr.writeln('Could not find file');قراءة سطر من الإدخال
اطرح سؤالاً على المستخدم، ثم احصل على إجابته باستخدام stdin.readLineSync. يتوقف التنفيذ حتى يضغط المستخدم على Enter.
final name = stdin.readLineSync();قد يكون الإدخال null
تعيد readLineSync قيمة String nullable. إذا أُغلق التدفق من دون إدخال، فستحصل على null، لذا عالج هذه الحالة.
final answer = stdin.readLineSync() ?? '';حلقة مطالبات صغيرة
اجمع بين الكتابة والقراءة لإنشاء مطالبة. اطبع سؤالاً، واقرأ الرد، ثم تصرف بناءً عليه، وكل ذلك في بضعة أسطر.
stdout.write('Name? '); final n = stdin.readLineSync();وسائط سطر الأوامر
يمكن لـ main استقبال List من String args. وكل ما يكتبه المستخدم بعد اسم البرنامج يصل إلى هناك بالترتيب.
void main(List<String> args) { print(args); }قراءة وسيطة واحدة
يمكنك الوصول إلى args باستخدام الفهرس كما تفعل مع أي قائمة. تحقّق دائماً من args.isEmpty أولاً حتى لا يتسبب غياب الوسيطة في تعطل البرنامج.
if (args.isNotEmpty) print(args[0]);تحليل الرايات باستخدام args
بالنسبة إلى واجهات سطر الأوامر الحقيقية، تحوّل حزمة args الرايات والخيارات إلى نتيجة محللة ومنظمة بدلاً من إدارة الفهارس يدوياً.
import 'package:args/args.dart';تعيين رمز الخروج
أخبر الصدفة بنتيجة التنفيذ باستخدام exit. يعني الصفر النجاح، بينما تشير أي قيمة أخرى إلى وجود خطأ بالنسبة إلى البرامج النصية التي تستدعي برنامجك.
exit(1);إيقاف وضع إظهار الإدخال
بالنسبة إلى كلمات المرور، أخفِ الأحرف المكتوبة بتعيين stdin.echoMode إلى false قبل قراءة السطر.
stdin.echoMode = false;تحقق سريع
إلى أين ينبغي لأداة سطر الأوامر إرسال رسائل الخطأ حتى تظل المخرجات الممررة نظيفة؟
مراجعة
أصبحت الآن قادراً على الكتابة إلى stdout وstderr، وقراءة الإدخال باستخدام stdin، واستقبال وسائط سطر الأوامر، وتعيين رمز الخروج. أصبحت واجهة سطر الأوامر تفاعلية.
الأسئلة الشائعة
هل درس «Stdin وStdout ووسائط Process» مجاني؟
نعم — نص درس «Stdin وStdout ووسائط Process» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.
ماذا ستتعلم في «Stdin وStdout ووسائط Process»؟
إنشاء برامج CLI تفاعلية تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟
لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «Stdin وStdout ووسائط Process»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟
نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- قراءة الملفات وكتابتها
- الأدلة والمسارات وFileSystemEntity
- بث الملفات الكبيرة
- Stdin وStdout ووسائط Process