Рубрики

Написание независимого от ОС кода на C / C ++

Как написать служебную программу, которая перечисляет все содержимое каталога независимо от операционной системы.

Большинство компиляторов C / C ++ определяют макросы, которые можно использовать для обнаружения операционной системы. Например, в GCC ниже приведены распространенные макросы.

_WIN32 : Defined for both 32 bit and 64 bit windows OS.
_WIN64 : Defined for 64 bit windows OS.

unix, __unix, __unix__ : Defined in UNIX OS

__APPLE__, __MACH__ : Defined in Mac OS


Source : StackOverflow

В Windows мы используем вызов всех каталогов, и в большинстве других операционных систем используется «ls». Ниже приведена простая реализация C ++ для вывода списка каталогов папки независимо от ОС.

// C ++ программа для вывода списка всех каталогов.
#include <bits/stdc++.h>

using namespace std;

int main()

{
#ifdef _WIN32

    system("dir");

#else

    system("ls");

#endif

    return 0;

}

Приведенный выше независимый от ОС код полностью отличается от независимости платформы Java. В Java есть промежуточный байт-код, который является очень чистым способом обработки зависимостей платформы. Здесь мы должны помнить макросы, специфичные для компилятора, и писать код, используя неуклюжие #ifdef и #else, и самое главное, нам нужно перекомпилировать код для каждой ОС.

Эта статья contrubuted по Shubham Агравалом. Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Написание независимого от ОС кода на C / C ++

0.00 (0%) 0 votes