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

برنامه‌نویسی، طراحی الگوریتم و حل مسئله‌های الگوریتمی

 
در صورت ناخوانا بودن نوشته‌ها، از مرورگر دیگری استفاده کنید.
تابع popen - الگوریتمستان
الگوریتمستان
0 0 0.00 5.00
  »  

تابع 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
10     if(fp = popen(command.c_str(), "r")) {
11         fgets(res, sizeof(res) - 1, fp);
12         cpu = atoi(res);
13     }
14     pclose(fp);

  

به اشتراک‌گذاری نوشته
اشتراک‌گذاری در LinkedIn     Cloob     اشتراک‌گذاری در Twitter     اشتراک‌گذاری در Facebook     ارسال با Telegram     Google Plus
برچسب‌ها
امتیاز نوشته
  • 1
  • 2
  • 3
  • 4
  • 5

نام: *  

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

وبگاه:

متن پیام: *

01 02 03 04 05 06 07 08 09 10 11 12 13 14

 


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

   

   

پیوند کوتاه: عمر نوشته:  ۷۷۷ روز
تعداد بازدید:  ۷۲۹ بازدید
تعداد امتیاز:  ۰ امتیاز
میانگین امتیاز:  ۰.۰۰  از  ۵.۰۰
»  بازی Lights Out و ریاضیات دوست داشتنی
        حل بازی Lights Out با ریاضیات دوست داشتنی
»  نکته‌ای در مورد کلاس‌ها و مجموعه‌ها در ++C
        بررسی روش تعریف کلاس برای قابلیت استفاده از ظرف‌های مجموعه (set و unordered_set) در زبان برنامه‌نویسی ++C
»  سوال Free Ticket
        راهنمای حل سوال Free ticket، از سوالات المپیاد ملی کامپیوتر هندوستان
»  sync_with_stdio در زبان ++C
        نکته‌ای در مورد کارایی عملیات ورودی و خروجی در زبان برنامه‌نویسی ++C و عملکرد تابع sync_with_stdio
»  نکته‌ای در محاسبه‌ی زمان اجرای کد
        در مورد تفاوت توابع clock و time در زبان برنامه‌نویسی ++C برای محاسبه‌ی زمان اجرای برنامه
»  ابزار VJudge
        معرفی وب‌سایت Virtual Judge برای برگزاری مجازی مسابقه‌ی برنامه‌نویسی به سبک مسابقات ACM-ICPC
»  هدر فایل bits/stdc++.h
        معرفی هدرفایل bits/stdc++.h برای کاهش زمان آماده شدن کد مسابقات برنامه‌نویسی
»  نکته‌ای از مسأله‌ی Graphical Editor
        استفاده از stringstream در حل سوالات مسابفات برنامه‌نویسی با زبان برنامه‌نویسی ++C
»  ابزار UVA Toolkit
        معرفی وب‌سایت UVA Toolkit برای کمک به حل سوالات برنامه‌نویسی UVA Online Judge
»  نکته‌ای از مسأله‌ی LC-Display
        نکته‌ای در باب روش ذخیره کردن ورودی یک مسأله
»  بازی TicTacToe
        پروژه‌ی بازی TicTacToe با زبان برنامه‌نویسی ++C و Qt
»  ظرف‌ها در ++C
        معرفی انواع ظرف‌ها (نگهدارنده‌ها - containers) در زبان برنامه‌نویسی ++C
»  سینوس و کسینوس را قورت بده
        محاسبه‌ی جدولی سینوس و کسینوس زوایای مشهور
»  نکته‌ای در استفاده از map
        نکته‌ای در مورد استفاده از ساختمان داده‌ی map با مثالی به زبان برنامه‌نویسی ++C