Не пострадает. Я знаю про dup2 и fdopen, или freopen... А абстракции были на уровне read, write... Причём, чтоб несколько упростить задачу, open и close ничего не делали. У первого компорта файловый дескриптор всегда был 1, у второго 2 и так далее (подсказка для Mebius). А в read/write тупой свитч (благо всего 3 компорта, например) и вызов нужных функций.