dup2 сокет к файлу - PullRequest
       22

dup2 сокет к файлу

2 голосов
/ 11 ноября 2011

Все, зима приходит, плз, согрейся и будь здоров. Во время медитации о работе у меня возник вопрос о функции fd dup2 , Я создаю сокет-сервер и клиент. сервер отправляет, клиент получает данные. Но теперь я хочу дублировать сокет fd сервера в файл df, чтобы позволить клиенту считывать данные непосредственно из файла, расположенного на сервере. Я пишу как

while(socketdf = accept(...))
{
 dup2(filefd , socketfd);
}

Однако это не работает Это возможно? Можете ли вы дать мне совет по этому поводу? Thanx

1 Ответ

4 голосов
/ 11 ноября 2011

dup2() не работает так, что вы в конечном итоге делаете, закрывая socketfd и заменяя его копией filefd.

Нет прямого способавставьте сокет в файл, как вы пытаетесь сделать здесь - вам нужно будет «перекачать» данные из файла в сокет в вашем приложении.Системный вызов sendfile() значительно упростит ситуацию.

...