اطلاعیه

Collapse
No announcement yet.

آرومان تابع main

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    آرومان تابع main

    کد:
    int main(int argc,char *argv[])
    سلام تابع mainبرنامه به صورت زیر تعریف شده و یک فایل به عنوان آرگومان از طریق کامپایلر به رنامه معرفی میشه(مثلا قراره تابع مین رو آون فایل کاری انجام بده).چه پارامترهایی از اون فایل به عنوان آرگومان به تابع منتقل میشن؟؟؟؟؟؟؟؟؟؟

    #2
    پاسخ : آرومان تابع main

    همونطوری که ممکنه بدونین تابع main تابعی هست که در ابتدای اجرای برنامه از طرف سیستم و یا بهتر بگیم از طرف روالهای شروع کننده برنامه صدا زده میشه. این روالها بطور پیش فرض سه آرگومان را براس main ارسال میکنند.

    اول تعداد آرگومانهای رشته ای پاس شده به برنامه اصلی که ما اسمشو میذاریم argc.
    دوم آرایه ای از اشاره گر ها که هر اشاره گر میتونه بجای هر آرگومان رشته ای پاس شده به برنامه اصلی استفاده بشه.
    سوم آرایه ای از اشاره گر ها که هر اشاره گر به یک متغیر عمومی سیستم اشاره میکنه.

    بنابراین تعریف عمومی این تابع در محیط هایی مثل dos , windows و لینوکس به صورت زیر هست:


    int main(int argc, char *argv[], char *envp[])


    اما از اونجایی که در زبان سی نحوه پاس کردن آرگومانها به تابع به صورتی هست که همیشه از نظر تابع آرگومان اول قبل از همه در پشته قرار میگیره و ضمنا پشته از طرف صدا زننده خالی میشه یک تابع میتونه به هر تعداد از
    آرگومانها رو از آخر به اول استفاده نکنه. یعنی این تابع رو میشه به صورتهای زیر هم تعریف کرد:


    int main(int argc, char *argv[])
    int main(int argc)
    int main(void)


    اما این آرگومانهایی که به این تابع پاس میشن فقط برای ارتباط خط فرمان سیستم عامل با این تابع هست و نه ارتباط خود سیستم عامل. از طرفی سیستم عامل نمیدونه و نباید به این کاری داشته باشه که شما با قید کردن a.txt در هنگام اجرای برنامه قصد نمایش این متن رو دارین - قصد حذف فایلی به این اسم رو دارین یا اصلا اشتباهی اینو تایپ کردین. بنابراین این به قول شما اسم فایل رو فقط به عنوان یک رشته به main پاس میکنه ولاغیر.

    اگر احتیاج به اخذ اطلاعاتی راجع به اون فایل دارین بایستی خودتون شخصا با کمک توابع استاندارد سی یا توابع سیستم عامل با داشتن اسم فایل به اطلاعات مورد نظر دسترسی پیدا کنین.

    دیدگاه

    لطفا صبر کنید...
    X