Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

239
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda