✤  تابع popen در زبان ++C

گاهی لازم است یک برنامه‌ی خارجی را از برنامه‌ی خودمان اجرا و خروجی آن را استفاده کنیم. این برنامه می‌تواند یک برنامه‌ی اجرایی دیگر یا یکی از ابزارهای سیستم عامل مانند ping یا حتی اجرای یک برنامه‌ی java باشد. آنچه که مهم است اجرا شدن از خط فرمان و تولید خروجی متنی است.

زبان ++C برای این کار تابع popen را دارد که با خط فرمان به شکل فایل برخورد می‌کند. یعنی دستور مد نظرمان را به صورت اسم فایل می‌دهیم و خروجی اجرای آن را به صورت جریان فایلی می‌خوانیم.

مثلا برنامه‌ی زیر تعداد هسته‌های CPU را روی سیستم‌های عامل لینوکس و ویندوز از طریق ابزارهای خط فرمان دریافت و داخل متغیر cpu ذخیره می‌کند:

  

    string command;

    int cpu = 1;

    FILE *fp;

    char res[4];

#ifdef __linux__

    command = "grep -c ^processor /proc/cpuinfo";

#elif _WIN32

    command = "echo %number_of_processors%";

#endif

    if(fp = popen(command.c_str(), "r")) {

        fgets(res, sizeof(res) - 1, fp);

        cpu = atoi(res);

    }

    pclose(fp);

  

مسعود اقدسی‌فام

مسعود اقدسی‌فام هستم.

یک معلم علاقه‌مند به تحقیق، تدریس و نوشتن در حوزه‌های برنامه‌نویسی، الگوریتم و حل مسئله :)

algs.ir/spxtmto     اشتراک‌گذاری در LinkedIn     اشتراک‌گذاری در Twitter     ارسال با Telegram
نوشته‌ها از این دست
       ✦   سوال Free Ticket
آخرین نوشته‌ها
       ✦   الگوریتم آنلاین
       ✦   ابزار CodinGame
بازدید نوشته
          ۲۴ ساعت گذشته:  ۰ بازدید
          ۳۰ روز گذشته:  ۲۵ بازدید
          کل: ۱۶۴۶ بازدید
  • 1
  • 2
  • 3
  • 4
  • 5

نام: *  

پست الکترونیک:

متن پیام: *  

01 02 06 07 08 09 10 11 12 13 14