Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Support for renameat2?

Abierto
#406 1 comentario 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
55/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
rust

Línea de trabajo

Comienza con Dir::rename de cap-std y rustix::fs::renameat_with; después, compara cómo se exponen las operaciones del sistema de archivos en las plataformas compatibles. Lee la implementación de escritura atómica de cap-std-ext para comprender el caso de uso de RENAME_NOREPLACE. Se considera terminado cuando se admiten flags de tipo renameat2 donde estén disponibles y la creación atómica puede evitar sobrescribir un archivo existente.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

On Linux, cap-std implements Dir::rename via rustix::fs::renameat, which is the renameat function.

Since Linux 3.15, there is another version of this call, renameat2, which supports an additional flags argument. rustix already supports this function as rustix::fs::renameat_with.

Could cap-std add support for this function as well?

Additional Context

The external cap-std-ext crate implements atomic writes by writing a temporary file and renaming it in place. However, it is not possible to atomically create a file in this way.

renameat2 supports the RENAME_NOREPLACE flag, which ensures that no existing file is overwritten by the rename. As such, an atomic_create could be implemented based on this change.

Lenguaje dominante
Rust
Estrellas
821
Forks
59
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de bytecodealliance/cap-std

Todos los issues de bytecodealliance/cap-std

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.