Перенаправить STDOUT и STDERR в сокет в C?

Я пытаюсь перенаправить STDOUT И STDERR в сокет.

Я сделал:

if(fork() == 0)
{
   dup2(newsock, STDOUT_FILENO);
   dup2(newsock, STDERR_FILENO);
   execvp();
}

Каким-то образом он показал только первую небольшую часть вывода.

например, это отображалось на «mkdir», когда я пытался выполнить ls или mkdir.

В чем проблема?

Я пробовал, все работает, но я могу перенаправить только один из STDOUT или STDERR

close(1);
dup(newsock);

Большое спасибо.

5
задан JJ Liu 12 November 2011 в 00:27
поделиться