Rayanoos.ir 1396/12/21 16:28
اگر به دنبال نوشتن سورس کدی هستید که لینوکس یا ویندوز را تشخیص دهد و در هردو این سیستم عامل ها کامپایل و اجرا شود این پست را مطالعه کنید.
 مطلع هستید که ادرس دایرکتوری ها در ویندوز به وسیله " \ " و در لینوکس با " / " از هم جدا می شوند. پس کافیست یک آدرس دایرکتوری از سیستم عامل داشته باشیم تا بتوانیم آن را تشخیص دهیم
 در پست قبلی نحوه گرفتن مسیری که برنامه آنجا حضور دارد را یاد گرفتیم و در این جا با استفاده از آن میخواهیم سیستم عامل کاربر را تشخیص دهیم
ابتدا در بخش ::1:: متغیر کاراکتری را خالی میکنیم تا محتوای جدیدی در آن ذخیره کنیم و البته آدرس مسیر قرارگیری برنامه را در آن ذخیره میکنیم
در بخش ::2:: آدرس و مسیر برنامه را کاراکتر به کاراکتر از آخر به اول میخوانیم و هرگاه برسیم به " \ " یعنی سیستم ویندوزی است و در غیر این صورت برسیم به " / " سیستم لینوکسی است و بعد از آن هرکدام صحیح بود نام آن سیستم عامل چاپ می شود
شما کافیست در بخش لینوکس کد های مخصوص لینوکس را بزنید و در بخش ویندوز کد های مخصوص ویندوز را،  بدین ترتیب سورس کد شما هم برای لینوکس و هم برای ویندوز ، بدون هیچ گونه خطایی کامپایل و اجرا میشود

دانلود سورس کد با لینک مستقیم | Main.cpp 

#include <iostream>
#include <string.h>
using namespace std;

int main (int a,char ** b)
{
    char adr[512];
    int iad=1;// برای شمارش در حلقه ها

    // .:: 1 ::.
    for (iad=1; iad<=sizeof(adr); iad++)
    {
        adr[iad-1]='\0';
    }
    adr[sizeof(adr)]='\0';

    strcpy(adr,b[0]);

    // .:: 2 ::.
    for ( iad = sizeof(adr); iad; iad--)
    {
        if (adr[iad]=='\\' || adr[iad]=='/')
        {
            if (adr[iad]=='\\')
                cout <<"Windows" << endl;

            if (adr[iad]=='/')
                cout <<"Linux" << endl;
            break;
        }
    }

    return 0;
}