1

ネットワーク ボリュームをアンマウントするにはどうすればよいですか?

NSWorkspaceそれらは取り外し可能でもマウント不可能でもないと考えています。unmountAndEjectDeviceAtPath: @"/Volumes/the network volume in question"何も起こりません。鼻の下に座ってこれを行う簡単な方法があるかもしれませんが、見つけられません。

Finder にネットワーク ボリュームをイジェクトするように指示する Applescript を作成し、それを Cocoa から呼び出すことに頼りたくありません。

(ちなみに、私の開発プラットフォームは Tiger です)

4

2 に答える 2

0

unmount() よりも多くの状況を処理する diskutil を使用することもできます。

std::string command = std::string("diskutil unmount \"") + currentMountPoint + "\"";
int ret = system( command.c_str() );

マウント ポイントの前後の二重引用符に注意してください。おそらく のようなものです/Volumes/Untitledが、次のようなものもあります/Volumes/NO NAME

于 2014-02-06T06:05:14.273 に答える
0

unmount(2)フェアゲームと呼んでいますか?(奇妙なことに、ほとんどの Unix システムでは、システム コールumount()に ではなくという名前が付けられており、マンページでは、名前と概要のセクションでかなり明確に が使用されているにもかかわらず、システム コールunmount()が頻繁に呼び出されます。)umount()unmount()

マウントは他の何かで使用されていますか? チェックlsof(1)またはfuser(1)出力して、そのファイルシステムが現在開いているプロセスがある場合は、そのプロセスを確認します。(おそらくchdir("/");、unmount 呼び出しの直前に単純なものを追加すればよいでしょうか?)

于 2011-09-27T02:15:22.880 に答える