Sé que dup, dup2, dup3 "crea una copia del descriptor de archivo oldfd" (de las páginas man). Sin embargo, no puedo digerirlo.¿Alguien puede explicar qué hace dup() en C?
Como sé, los descriptores de archivo son solo números para realizar un seguimiento de las ubicaciones de los archivos y su dirección (entrada/salida). ¿No sería más fácil simplemente
fd=fd2;
¿Siempre que queremos duplicar un descriptor de archivo?
Y algo más ..
dup() utiliza el descriptor sin usar el número más bajo para el nuevo descriptor.
¿Eso significa que también se puede tomar como valor de entrada estándar , stdout o stderr si asumimos que tenemos close() -ed uno de esos?
Por primera pregunta que hay que recordar que el núcleo no pierde de vista el número de abrir archivos de archivos. 'dup' es tu forma de decirle al kernel que quieres que mantenga un seguimiento de otro de esos manejadores de archivo (refiriéndose al mismo archivo) hasta que' lo cierres '. – user786653