Estoy buscando una manera de ejecutar un ejecutable de Linux desde un ejecutable de Linux separado que se compiló desde C o C++. Sin embargo, he mirado numerosas publicaciones de desbordamiento de pila que dirigen al usuario solicitando usar la función system() o un contenedor de la función del sistema y no quiero un programa que se base en el shell, porque podría desmoronarse fácilmente si se transfirió a un sistema operativo diferente con un shell diferente.
En la publicación ¿Cómo ejecuto un programa externo dentro de C en Linux con argumentos ?, la segunda respuesta establece que execve() es un contenedor para la función system() , y esto me hace desconfiar de las otras funciones en la familia exec() .
También he mirado los siguientes artículos:
¡Toda ayuda es apreciada!
execve() no es un envoltorio para system() ; es un envoltorio para el propio syscall execve .
execve() reemplaza el proceso actual, por lo que probablemente necesitará fork() y luego ejecutar execve() en el proceso secundario, emulando así el comportamiento de system() .