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_EXLOCK
en la lista aquí, por lo que supongo que la constante no está disponible por ese motivo. ElVariante de FreeBSDopen
y lo openat
enumera, pero no sé qué hacer con él. De acuerdo aesta respuesta SO O_EXLOCK
Es posible que no esté disponible en Linux.