الگوریتمستان

یادداشت‌های یک معلم علاقه‌مند به نوشتن از آنچه آموخته و یاد می‌دهد
 

  

✤  تابع 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
نوشته‌ها از این دست
آخرین نوشته‌ها
نوشته‌های پرمخاطب
  • 1
  • 2
  • 3
  • 4
  • 5

نام: *  

پست الکترونیک (محرمانه):

متن پیام: *  

01 02 06 07 08 09 10 11 12 13 14