Pregunta

Con el soporte de ACL en Mac OS X, no es una forma de declarar un archivo como se pueda escribir, pero no eliminable.

Esto plantea un problema con las escrituras atómicas, ya que el implementación actual de rename en VFS deletes un objetivo preexistente. Si usted tiene un archivo existente, la que tiene privilegios de escritura en adelante, es posible ser no para escribir atómicamente a:
Simplemente conecte una ACL que los estados deny delete y una escritura atómica (como implementada por varias API Cocoa - por ejemplo, de NSArray writeToFile:atomically: ) fallará, mientras que una escritura no atómica estará feliz de tener éxito.

Desde mi comprensión del código de bajo nivel C es bastante limitado:
Es una implementación alternativa factible con menor importancia (insertar su definición favorita de "menor") dolores de cabeza?

Gracias

Daniel

¿Fue útil?

Solución

Una alternativa viable parecería crear el archivo en un directorio temporal, a continuación, llamar exchangedata en ambos archivos. HFS exporta el atributo VOL_CAP_INT_EXCHANGEDATA, por lo que debería funcionar. Los controles pertinentes en vfs_syscalls.c indican que sólo de lectura y escritura son necesarios para la llamada se realice correctamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top