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