سؤال

لدي مشروع يتطلب استخدام exec الأسرة.بلدي المشروع تتكون من صنع تفاعلية قذيفة.قذيفة تنفيذ بعض الأوامر الأساسية مثل cd, هل, صدى, الخ.لقد تم البحث استخدام exec, ولكن لا يمكن العثور على الموقع المفيد.أي روابط مقترحة من شأنه أن يساعد.

int ret;
ret = execl ("/bin/ls", "ls", "-1", (char *)0);

كيف يمكنني الحصول على الناتج من هذه العملية تظهر على الشاشة ؟

هل كانت مفيدة؟

المحلول

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

إذا كنت تريد أن تفعل I/O مع برنامج آخر, popen هو جيد عن هذا (كما mgb المذكورة).وسوف شوكة عملية جديدة ، إعداد السباكة لك دعوة بعض البديل exec, والعودة التعامل مع ملف يمكنك استخدام الاتصال.

نصائح أخرى

القيام

int fd = 1;
dup(fd);
close(fd);

يحصل الإخراج إلى الشاشة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top