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

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

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

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

1 ответ

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

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

Другие вопросы по тегам