¿Obtener constante de bloqueo exclusivo? En ctypes es O_EXLOCK

¿Obtener constante de bloqueo exclusivo? En ctypes es O_EXLOCK

Estoy intentando abrir un archivo con bloqueo exclusivo a través de Javscript. Entonces, abrir la biblioteca no es complicado, solo el número para pasar ya que UnixFlags es un problema.

Esta es la sintaxis:

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

¿Alguien sabe el número a poner en NUMBER_HERE que es falg para bloqueo exclusivo?

Gracias

Respuesta1

Pienso que puede ser OS.Constants.libc.O_EXLOCK. Desde elMDN:

O_EXLOCK    Atomically obtain an exclusive lock.

También hay uncódigo de ejemplolo que sugiere que este es el valor:

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);

acabo de pasaropen, la llamada al sistema que creo que realmente hace la apertura. No hay ninguno O_EXLOCKen la lista aquí, por lo que supongo que la constante no está disponible por ese motivo. ElVariante de FreeBSDopeny lo openatenumera, pero no sé qué hacer con él. De acuerdo aesta respuesta SO O_EXLOCKEs posible que no esté disponible en Linux.

información relacionada