アプリケーションの以前のインスタンスがすでに実行されているかどうかを判断できるCコードを作成する方法はありますか?LinuxとWindowsの場合、どちらも利用可能な最新バージョンのGCCを使用して、これを移植可能な方法で確認する必要があります。
ポータブルコードの例は非常に役立ちます。現在、2つのオプションがあります。
- プロセスリストを確認してください。ここでLinuxには優れたツールがありますが、同じ機能がWindowsに適用されるとは思いません。多分両方のSOのためのいくつかのgnuライブラリ?どのライブラリ、または関数ですか?
- ファイルを保存してロックします。では、両方のシステムが理解できる方法でそれを行うにはどうすればよいでしょうか。1つの問題は、ファイルをどこに保存するかです。パスツリーはシステムごとに異なります。また、相対パスが選択されている場合でも、2つのアプリケーションは、異なるディレクトリにある異なるロックされたファイルで実行できます。
ありがとう!ベコ。
PS。SOにはさまざまな要件があるため、1つを知っていて、もう1つを知らない場合は、答えてください。結局のところ、移植可能な「単一の」方法がない場合でも、#ifdefと回答として提案されたコードを使用できる可能性があります。
C言語(c ++ではない)、コンソールアプリケーション、gcc、Linux、およびWindows