Мне нужна портативная библиотека C++ для того, чтобы сделать IPC. Я использовал ветвление () и общая память SysV до сих пор, но это ограничивает меня Linux/Unix. Я узнал, что существует 3 крупнейших библиотеки C++, которые предлагают портативное решение (включая Windows и Mac OS X). Я действительно люблю Повышение и хотел бы использовать его, но мне нужны процессы, и кажется, что это - только экспериментальное ответвление до сих пор!? Я никогда не слышал о ACE или ПОСТЕПЕННО прежде, и таким образом я застреваю, я не знаю который выбрать. Мне нужно ветвление (), сон () (usleep () было бы большим), и общая память, конечно. Производительность и документация являются также важными критериями.
Спасибо за помощь!
Boost Interprocess существует со времен Boost 1.35 (что должно быть около 3 лет назад, если мне не изменяет память).
ACE существует дольше, но, судя по всему, это излишество - ACE является большой библиотекой, а вам, похоже, нужна лишь малая часть того, что она включает. Это не обязательно серьезная проблема, но ее следует иметь в виду. В частности, библиотека, которая действительно предназначена для больших проектов, может показаться (или быть) немного неуклюжей для маленьких проектов. ACE также предназначена в первую очередь для разработки сетей, с включенным IPC, потому что (например) вы можете захотеть создать то, что кажется единым сервером из нескольких взаимодействующих процессов, и если это так, то вам, очевидно, нужен способ создания этих взаимодействующих процессов.
POCO гораздо больше похож на ACE - это, по сути, сетевая библиотека, которая включает в себя некоторые возможности IPC. Опять же, вы смотрите на использование довольно маленькой части гораздо большей, более амбициозной библиотеки.
Исходя из того, что вы хотите, я бы, вероятно, использовал Boost - он кажется наиболее подходящим для того, что вы сказали, что вам нужно. POCO, вероятно, будет моим вторым выбором. Хотя он отделен от Boost, кажется, что он в основном следует схожей философии проектирования - в частности, он предназначен для интеграции со стандартной библиотекой, где ACE имеет тенденцию быть более всеобъемлющим.