Я использую одно из следующего:
:CheckOS
IF EXIST "%PROGRAMFILES(X86)%" (GOTO 64BIT) ELSE (GOTO 32BIT)
:64BIT
echo 64-bit...
GOTO END
:32BIT
echo 32-bit...
GOTO END
:END
или я устанавливаю переменную bit
, которую я позже использую в своем скрипте для запуска правильной установки.
:CheckOS
IF EXIST "%PROGRAMFILES(X86)%" (set bit=x64) ELSE (set bit=x86)
или ...
:CheckOS
IF "%PROCESSOR_ARCHITECTURE%"=="x86" (set bit=x86) else (set bit=x64)
Надеюсь, что это поможет.
Я позволю другим перечислить различные определенные для платформы API, но для дальнейшего использования в C++ 09 Вы доберетесь
atomic_compare_exchange()
операция в новой "Атомарной операционной библиотеке".
бойкий, библиотека общей системы по системам Linux и Unix (но также и поддерживаемый в Windows и Mac OS X), определяет несколько атомарных операций , включая g_atomic_int_compare_and_exchange и g_atomic_pointer_compare_and_exchange.
На Солярисе существует "atomic.h" (т.е. < sys/atomic.h> ).
GCC имеет [приблизительно 110] созданные-ins для атомарных доступов , также.
Java начинает эту операцию CAS, также
видят здесь
существуют практические применения для этого, как хеш-таблица без блокировок используются в многопроцессорной системе
Был проведен ряд рабочих групповые статьи по этой теме, предлагающие изменения в Стандартной библиотеке C ++. WG N2427 ( Атомарные типы и операции C ++ ) является самой последней, которая вносит вклад в раздел 29 - Библиотека атомных операций - ожидаемого стандарта. 1152149]