Cuando estaba en el núcleo de Linux 2.6 y en NFSv3 ¿se volvió válido el open("fname", O_CREAT|O_EXCL)
? La documentación canónica llamada open(2)
sistema actual (http://www.kernel.org/doc/man-pages/online/pages/man2/open.2.html) dice que todo está bien:abierto O_CREAT | O_EXCL en NFS en Linux?
- O_EXCL
- ...
On NFS, O_EXCL is only supported when using NFSv3 or later on kernel
2.6 or later. In NFS environments where O_EXCL support is not
provided, programs that rely on it for performing locking tasks will
contain a race condition. Portable programs that want to perform
atomic file locking using a lockfile, and need to avoid reliance on NFS
support for O_EXCL, can ...
Esto lee como si todos los núcleos 2.6 están bien, pero la página del manual changelog (ca tardío de grano 2.6.23) comienza validez que indica cuatro años después de la versión 2.6.0, y la web está plagada de usuarios de tableros que censuran este uso en el último año o dos. Me gustaría utilizar esta configuración en los sistemas RHEL 5 (2.6.18), pero no pude precisar cuándo realmente se volvió segura. ¿Alguien tiene una respuesta definitiva?
¿Existe una cuestión de programación en alguna parte? – Gabe
Lo intenté tanto en la primera oración. En la medida en que la gente puede hacer preguntas sobre cosas como 'std :: fstream :: fstream (char const *, ios_base :: openmode)' en la biblioteca estándar de C++, esperaba que la biblioteca estándar de C fuera un juego abierto, incluso con respecto a no-POSIX opciones. – Jeff
El texto adjunto se ha reducido sustancialmente para ayudar a la claridad si esa era la preocupación original. – Jeff