私は、Javscript 経由で排他ロック付きのファイルを開こうとしています。開くライブラリは簡単ですが、unixFlags として渡す番号が問題です。
構文は次のとおりです。
OS.File.open('/path/to/file', {unixFlags: NUMBER_HERE});
排他ロックのフラグである NUMBER_HERE に入力する番号を知っている人はいますか?
ありがとう
答え1
多分そうだと思いますOS.Constants.libc.O_EXLOCK
。翻訳:
O_EXLOCK Atomically obtain an exclusive lock.
また、サンプルコードこれは次の値であることを示唆しています:
let options = {
winShare: 0 // Exclusive lock on Windows
};
if (OS.Constants.libc.O_EXLOCK) {
// Exclusive lock on *nix
options.unixFlags = OS.Constants.libc.O_EXLOCK;
}
let file = yield OS.File.open(..., options);
私はちょうど通り抜けたopen
、実際に開くのを行うシステムコールだと思います。O_EXLOCK
ここには記載されていないので、その理由で定数が利用できないと推測します。FreeBSD バリアントのとリストがありますopen
がopenat
、どうすればいいのかわかりません。このSOの答え O_EXLOCK
Linuxでは利用できない可能性があります。