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

240
Visualizações
¿Sería posible ejecutar el mismo código C++ simultáneamente?

Digamos que compilo un código y lo hago ejecutar. Tardará 10 minutos en terminar.

Mientras tanto, si cambio algunos parámetros en el código y lo vuelvo a compilar usando una ventana de terminal separada y lo ejecuto también (por lo que ahora hay dos programas ejecutándose simultáneamente usando el mismo código), ¿la segunda ejecución afecta al primer programa en ejecución como el la primera salida compilada se reemplaza por la segunda salida compilada?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

El comportamiento no está definido por el estándar C++. En general, sucederá una de dos cosas (depende principalmente del sistema operativo)

  1. La segunda compilación fallará porque el enlazador no podrá abrir el archivo ejecutable para escribir en él.

  2. La compilación tendrá éxito y las invocaciones existentes del ejecutable original no se verán afectadas; las invocaciones posteriores utilizarán el nuevo ejecutable.

La tercera posibilidad, la compilación tiene éxito y estropea las invocaciones existentes, es inaudita en los sistemas operativos modernos.

over 4 years ago · Santiago Trujillo Relatório

0

La única respuesta razonable es que el comportamiento depende completamente del sistema operativo: el estándar C++ no intenta describir lo que podría suceder.

Su proveedor de sistema operativo puede extender la cortesía común de documentar o especificar el comportamiento, pero nunca he visto tal documentación.

Su mejor apuesta es no intentar esto.


Soy un gato viejo, aquí hay algunas reflexiones. Es poco probable que pueda hacer esto en Windows debido al bloqueo de archivos. En las estaciones de trabajo Sun es posible, pero el programa no parece funcionar del todo bien una vez que se compila en la misma ubicación que un ejecutable en ejecución. Bueno, ciertamente era así cuando estaba en la universidad usando C++ preestandarizado. Simplemente se comportó de manera extraña y no hay explicación para ello. En rhel parece funcionar bien para programas pequeños en particular.

over 4 years ago · Santiago Trujillo Relatório

0

Hay tres escenarios posibles:

  1. En Windows, un archivo ejecutable se bloqueará para escribirlo y eliminarlo mientras se ejecuta, por lo que la compilación simplemente fallará.

  2. En Linux, un archivo ejecutable no está necesariamente protegido contra modificación o eliminación mientras se ejecuta.

2.1. Si se elimina un archivo del sistema de archivos y luego se crea un nuevo archivo con el mismo nombre, el contenido del archivo anterior permanecerá hasta que el ejecutable en ejecución finalice, mientras que el nuevo ejecutable usará el nuevo archivo. Entonces, el ejecutable anterior continuará ejecutándose normalmente mientras que el nuevo también estará listo para funcionar.

2.2. Si un archivo se abre para escribir y se sobrescribe con contenido nuevo, el ejecutable que ya se está ejecutando utilizará el nuevo código de máquina, que probablemente sea incompatible con el estado del programa existente y provocará fallas.

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