フラッシュドライブから実行するプログラムを設計しました。私のアイデアは、ドライブを簡単に「安全に取り外す」ことができるように、プログラムにイジェクト ボタンを配置することでした。ただし、Mac では、強制的にアンマウントしない限り、アプリケーションの実行中にドライブをアンマウントすることはできません。私の質問は、これを行うべきですか?
強制アンマウントは、ドライブを引き抜くのと似ていませんか? このオプションを簡単に利用できるようにしても安全ですか?
また、代替手段はありますか?
あなたのアプリケーションはディスク自体から実行されていると思いますよね?
ドライブを強制的にイジェクトするのではなく、別のプロセスを生成する必要があります。基本的には、メイン プログラムが終了するのを待ってディスクを取り出し、最後にプログラム自体を終了する小さなヘルパー プログラムを作成します。ヘルパー プロセスを生成するときは、「待たずに」実行する必要があります。用語は、使用している言語 (「新しいスレッド内」または「プロセスの切り離し」)によって異なる場合がありますが、基本的な考え方は、そのような方法でメイン プログラムから引き継ぐためにヘルパー プログラムを起動する必要があるということです。メインプログラムを終了できること。
強制的にイジェクトするのは悪い形式です。ドライブが使用されていないことを確認できません。たとえば、Mac では、あらゆる種類の外部ディスクに対して Spotlight の読み取り/書き込みを行うことができます。