Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

248
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!