Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

247
Vistas
¿Qué sucede con el archivo si se cancela un script de Node durante una operación writeFileSync?

Digamos que ejecuto un script de Node en un entorno Linux que contiene lo siguiente:

 fs.writeFileSync("output.json", JSON.stringify(data))

Luego, cancelo el script (cmd/ctrl + c) después de que haya comenzado la operación writeFileSync pero antes de que finalice. ¿Existe "salida.json"? Si es así, ¿contiene algún dato?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Hice una prueba rápida en Windows 10 y obtuve algunos resultados interesantes:

  • Escribir más datos en un disco que el espacio libre en el disco dará como resultado un error que indica que no hay suficiente espacio libre en el disco. Sin embargo, el archivo aún se creará, con 0 bytes.
  • Creé un búfer de datos de 1 GB e intenté escribirlo en un archivo en un HDD. Toma alrededor de 10 segundos para que termine la escritura. Si elimino el proceso, se "bloqueará", donde, por ejemplo, intentaré eliminarlo nuevamente con errores. El proceso seguirá escribiendo datos en el archivo y solo desaparecerá una vez que haya terminado de escribir. Cada byte se escribió en el archivo, incluso si elimino el proceso si era físicamente imposible haber escrito el 1 GB completo para entonces.
  • Fue más allá. Ejecuté la prueba anterior nuevamente, pero usando fs.openSync y fs.writeSync . Entre ambas llamadas, me tomé el tiempo para encontrar el identificador del archivo en Process Explorer, que luego cerré durante la llamada fs.writeSync . Ahora PE se congeló hasta que se cerró la escritura. Mientras tanto, intenté finalizar el proceso de nodo usando el Administrador de tareas. ¿Resultado? Cada byte todavía estaba escrito en el archivo.
  • Después de todo eso, probé lo que realmente sugería la pregunta: comenzar a escribir el archivo e inmediatamente ctrl+c . El nodo arroja un buen error e inmediatamente sale, pero el archivo aún se creó con 0 bytes. Sin embargo, su millaje puede variar. especialmente si configura el manejo de señales.

No fui tan lejos como para cortar la alimentación o desconectar el disco durante la escritura, aunque en ese momento probablemente dependa del sistema operativo/disco de lo que suceda a continuación. Sin embargo, parece que NodeJS siempre creará el archivo. No es tan sorprendente, ya que fs.openSync('path', 'w') ya hace eso, aunque aún es un poco inesperado, incluso logra crear el archivo (vacío) justo antes de que falle porque no hay suficiente espacio en disco.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda