Q: 私はバックアップ・プログラムを書いていますが、仮想メモリの VM Storage ファイルを見つけて、それはバックアップしないようにしたいと思います。どのようにしたらよいでしょうか?
A: 使用中の仮想メモリ VM Storage ファイルを探す最良の方法は、以前はマニュアルに記載のなかった Gestalt セレクタを使うことです。使い方は次の通りです。
enum {
gestaltVMBackingStoreFileRefNum = 'vmbs'
};
このセレクタは現在使用中の“VM Storage”ファイルへのファイル参照番号を返します。次のように、PBGetFCBInfoSync を呼び出して、参照番号を FSSpec に変換することができます。
OSErr FindVMStorage(FSSpec *fss) {
OSErr err;
long gestaltResult;
FCBPBRec fcbPB;
Str255 theName;
err = Gestalt(gestaltVMBackingStoreFileRefNum, &gestaltResult);
if (err == noErr) {
fcbPB.ioNamePtr = theName;
fcbPB.ioVRefNum = 0;
fcbPB.ioRefNum = gestaltResult;
fcbPB.ioFCBIndx = 0;
err = PBGetFCBInfoSync(&fcbPB);
if (err == noErr) {
err = FSMakeFSSpec(fcbPB.ioFCBVRefNum,
fcbPB.ioFCBParID, theName, fss);
}
}
return err;
}
[2001年3月30日]
|