ببینید، اجرای تابع ()exit منجر به خاتمه یافتن اجرای برنامه و آزاد کردن منابع آن خواهد شد.
وقتی برنامه شما خاتمه پیدا می کنه دیگه کدی اجرا نمی کنه که عددی رو که به عنوان پارامتر بهش می دهید
رویش تاثیر گذار باشه.
این عدد بازگشتی به درد
سایر برنامه هایی خواهد خورد که در محیط بیرون برنامه درخواست اجرای برنامه شما را
داشته اند.
یک مثال می زنم، شما یک برنامه نوشته اید که مثلا یک سری تصویر رو نشون می ده.
برنامه شما به دو طریق خاتمه پیدا می کنه :
حالت اول وقتی که تمامی تصاویر رو نشون داده باشه و حالت دوم وقتی که کاربر کلید ESC رو فشار بده.
حالا من می خواهم یک برنامه که رو در کنار برنامه شما اجرا کنم که موسیقی پخش کنه.
اینجوری برنامه شما تصویر و برنامه دیگری صدای زمینه رو ایجاد می کنه.
اما من می خواهم که وقتی نمایش تصاویر تموم شد، از نو آنها را از اول نشون بده و وقتی ESC فشرده شد، برنامه موسیقی
رو هم خاتمه بدهم.
اما مشکل اینجا است که وقتی اجرای برنامه شما خاتمه پیدا کرد من از کجا بفهمم که علتش حالت اول بوده یا دوم؟
اینجا است که آن پارامتر کذایی بدرد می خوره. مثلا شما در برنامه تان از مقدار 8 برای خروج با ESC و از مقدار 0 برای خروج
در هنگام نمایش کلیه تصاویر استفاده می کنید.
حالا من می توانم با توجه به عدد خروجی برنامه شما بفهمم که کاربر کلید ESC رو فشار داده یا پخش تصاویر به پایان رسیده.
مثلا اسم برنامه شما Slide.exe است و اسم برنامه پخش موسیقی Sound.exe (که مثلا با سوئیچ quit/ به کارش پایان میده).
این فایل batch می تونه اون پخش همزمانی که مد نظر من هست رو ارائه کنه (مثلا فایل Play.bat) :
کد:
Sound.exe
:Loop
Slide.exe
IF NOT ERRORLEVEL 8 GOTO Loop
Sound.exe /quit
ERRORLEVEL یک متغیر استاندارد در سیستم عامل داس و ویندوز است که مقدار پارامتر بازگشتی رو مشخص می کنه.
این مقدار همواره مربوط به آخرین برنامه ای است که اجرا شده.
تمامی برنامه هایی که مربوط به سیستم عامل هستند، مثل Format.exe و Chkdsk.exe و بسیاری از برنامه ها و ابزارهایی
که در کامپیوتر اجرا می کنید مقدار بازگشتی شان را برای تشخیص انواع خطا ها بکار برده اند.
بصورت یک استاندارد از عدد صفر زمانی استفاده می کنیم که اجرای برنامه بدون هیچگونه مشکل و بصورت عادی
خاتمه پیدا می کنه.
اما اینکه فرق 0 و 1 یا 8 یا 1000 در چیه بستگی به برنامه نویسی داره که برنامه رو نوشته.
اگه قرار نیست که از این مقدار بازگشتی استفاده مفیدی بشه، برای شما فرقی نخواهد کرد، البته بهتره که در این حالت
از کد صفر استفاده کنید، چون بصورت کلی اعداد غیر صفر برای وقوع خطا استفاده می شوند.