Сколько копий консольных приложений уже запущено - PullRequest
1 голос
/ 25 июня 2010

У меня есть консольное приложение, написанное на C. В этом приложении я хочу определить, сколько копий консольного приложения уже запущено.Спасибо.

Ответы [ 2 ]

0 голосов
/ 25 июня 2010

Один из способов - получить доступ к списку процессов вашей операционной системы и подсчитать, сколько появлений исполняемого файла появляется.Но это может быть одурачено несколькими копиями исполняемого файла с разными именами.

Чтобы убедиться, что вы подсчитываете все вхождения независимо от имени исполняемого файла, вы можете создать глобальный объект общей памяти (конечно, с синхронизированным доступом)где каждый экземпляр регистрирует свой идентификатор процесса.Затем вы можете проанализировать этот список и проверить его по списку идентификаторов процессов ОС в случае, если какой-либо из экземпляров погиб, прежде чем отменить свою регистрацию.

0 голосов
/ 25 июня 2010

Я нашел это поиск в Google. Это включает в себя некоторые знания (не так много) о МПК . Это работает только для Windows. В Unix это можно сделать аналогичным образом, используя соответствующий Unix IPC.

ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ: Найдено также это . Подсчитывает количество процессов с данным именем (только для Windows).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...