Эта справочная страница для системного вызова dup2 говорит:
EBUSY (только для Linux) Это может быть возвращено dup2() или dup3() во время состояние гонки с открытым (2) и dup().
В каком состоянии гонки он говорит и что мне делать, если dup2 дает ошибку EBUSY? Должен ли я повторить попытку, как в случае EINTR?