So che dup, dup2, dup3 "crea una copia del descrittore di file oldfd" (dalle pagine man). Comunque non posso digerirlo.Qualcuno può spiegare cosa dup() in C fa?
Come so che i descrittori di file sono solo numeri per tenere traccia delle posizioni dei file e la loro direzione (input/output). Non sarebbe più semplice solo
fd=fd2;
Ogni volta che vogliamo duplicare un descrittore di file?
E un'altra cosa ..
DUP() utilizza il descrittore inutilizzato numero più basso per il nuovo descrittore.
Questo significa che si può anche prendere come valore stdin, stdout o stderr Se assumiamo che abbiamo close() -ed uno di quelli?
Per la prima domanda è necessario ricordare che il kernel tiene traccia del numero di aprire gli handle di file. 'dup' è il tuo modo di dire al kernel che vuoi tenere traccia di un altro di questi handle di file (riferendosi allo stesso file) finché non lo chiudi. – user786653