quiero volver a abrir el stdin
y stdout
(y tal vez stderr
mientras estoy en ello) filehandles, para que las futuras llamadas a printf()
o putchar()
puts()
o irán a un archivo, y futuras llamadas a getc()
y tal procederá de un archivo.Reencaminamiento entrada y salida estándar de C
1) No quiero perder de forma permanente de entrada/salida/error estándar. Es posible que desee reutilizarlos más adelante en el programa.
2) No quiero abrir nuevos controladores de archivo debido a que estos controladores de archivo tendrían que ser aprobado ya sea alrededor de un lote o global (estremecimiento).
3) No deseo utilizar ninguna open()
o fork()
u otras funciones dependientes del sistema si no puedo evitarlo.
Así que, básicamente, funciona para hacer esto:
stdin = fopen("newin", "r");
Y, si lo hace, ¿cómo puedo obtener el valor original de stdin
espalda? ¿Debo guardarlo en un FILE *
y recuperarlo más tarde?
Tenga en cuenta que 'stdin',' stdout', y 'stderr' son variables globales. –