배타적 잠금 상수를 얻으시겠습니까? ctypes에서는 O_EXLOCK입니다.

배타적 잠금 상수를 얻으시겠습니까? ctypes에서는 O_EXLOCK입니다.

Javscript를 통해 단독 잠금이 설정된 파일을 열려고 합니다. 따라서 열어야 할 라이브러리는 unixFlags로 전달할 숫자가 문제이므로 땀을 흘리지 않습니다.

이것은 구문입니다:

OS.File.open('/path/to/file', {unixFlags: NUMBER_HERE});

배타적 잠금을 위한 falg인 NUMBER_HERE에 입력할 번호를 아는 사람이 있나요?

감사해요

답변1

아마도 그럴 것 같아요 OS.Constants.libc.O_EXLOCK. 로부터MDN:

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_EXLOCKLinux에서는 사용하지 못할 수 있습니다.

관련 정보