لو سمحت انا مش فاهم ايه هو ال return 0 او الreturn1 ايه هي قصة ال return دي اساسا أرجو الإفادة
++return 0 c
ان كنت تتحدث عن الدالة main فالهدف من return 0 هو اخبار نظام التشغيل أن البرنامج أنهى تشغيله بشكل صحيح. الفكرة تأتي من نظام UNIX ونفسها موجودة في لينكس وماك وغيره ومن خلالها تستطيع البرامج ارسال اشارات لبعضها.
ان كنت على نظام لينكس وأردت التجربة أنشئ ملف hello.c وضع به:
#include <stdio.h>
int main(int argc, char **argv) {
printf("Hello Hsoub I/O\n");
return 0;
}
ثم ابني البرنامج وشغله
$ cc -o hello hello.c
$ ./hello
Hello Hsoub I/O
ستلاحظ أن البرنامج طبع الجملة ولم يحدث شيء آخر لكنك تستطيع تنفيذ الأمر التالي لتطبع exit status
$ echo $?
0
هذا يعني البرنامج أنهى تشغيله بشكل صحيح. ان غيرت رقم 0 في الكود بالأعلى لأي رقم آخر فسيظهر الرقم هنا. تستطيع الاستفادة منه بربط البرامج ببعضها من خلال shell scripts بهذه الطريقة على سبيل المثال
$ ./hello && ls
والذي يمكن تفسيره على الشكل: شغل البرنامج hello وان انهى تشغيله بشكل صحيح (أعاد 0) شغل البرنامج الذي بعده ls. جرب أن تعدل الكود السابق وتغير return 0 الى return 1 واعد الأمر الأخير ستجد أن ls لم يعمل بعد hello
التعليقات