/ / ¿Cómo usar popen para ingresar y salir al mismo tiempo? [duplicado] - c, linux, unix, pipe

¿Cómo usar Popen para ingresar y generar resultados al mismo tiempo? [duplicado] - c, linux, unix, tubería

Uso el código puedo para expresar lo que quiero hacer:

FILE* fd = popen("/bin/cat", ...);
Write some data to the stdin of `/bin/cat` using fd;
Read all data from the stdout of `/bin/cat` using fd;

¿Es posible?

Respuestas

2 para la respuesta № 1

Popen () solo puede leer del nuevo proceso. Si necesitas leer y escribir,

  • Cree una tubería que se conectará a un nuevo proceso usando pipe().
  • Teniendo en cuenta un nuevo proceso usando fork()
  • redirija las entradas y salidas del proceso a los conductos que creó anteriormente utilizando dup2()
  • llamar a exec en el proceso hijo (el nuevo proceso) usando exec funciones familiares