forse è il caso che ripassi la teoria... dup() non serve a resettare proprio nulla, serve a duplicare un file descriptor. E' spesso usato per redirezionare una pipe su stdin o stdout.