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

176
Views
Forma moderna de C ++ de iniciar y finalizar un programa de Linux

Tengo un programa C ++ que, según la entrada del usuario, necesita iniciar y detener un programa Linux determinado.

He simplificado la lógica que estoy usando actualmente en el siguiente código:

 int pid = fork(); if (pid == -1) { //Handle error } else if (pid == 0) { execlp("my_program", nullptr); exit(0); } else { //Main program stuff if(/* user selects close "my_program"*/) { kill(pid, SIGTERM); } //Other main program stuff }

Todo está funcionando, pero me preguntaba si había otros enfoques, tal vez más en el estilo moderno de C++, que podrían usarse en esta situación.

Gracias por adelantado.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Echa un vistazo a boost::process.

Hay varias formas en que se puede generar un proceso. Por ejemplo, en su ejemplo, bifurca el proceso, pero no cierra los descriptores de archivos clonados en el proceso secundario. Esa es una práctica a menudo olvidada por aquellos que invocan la bifurcación y puede conducir a problemas de enlace con el puerto (puerto/dirección ya en uso) u otros problemas difíciles de depurar.

Incluso boost no lo hizo correctamente durante algún tiempo.

over 4 years ago · Santiago Trujillo Report

0

La forma moderna sería usar una biblioteca como Boost.Process https://www.boost.org/doc/libs/1_78_0/doc/html/process.html o Qt https://doc.qt.io/qt- 5/qprocess.html .

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!