ユーザーがアプリケーションの複数のインスタンスを実行できないようにしたいと考えています。私の疑似コードは次のようになります。
sem_t one_instance_only=sem_open(UNIQUE_NAME,O_CREAT | O_EXCL,...);
if(SEM_FAILED==one_instance_only)
{
if(E_EXIST==errno)
{
// application already running
exit(1);
}
}
sem_close(...);
//without the call to sem_unlink() the semaphore still lingering even if app not
// running
sem_unlink(...);
私はそれを試してみましたが、うまくいきましたが、私はそれを正しくやっていて、どこかに問題がないことを確認したいだけです.