dup2 сокет к файлу
Все, зима приходит, плз согреться и сохранить здоровье. Во время медитации о работе у меня возник вопрос о функции fd dup2 . Я создаю сокет-сервер и клиент. сервер отправляет, клиент получает данные. Но теперь я хочу дублировать сокет fd сервера в файл df, чтобы позволить клиенту считывать данные непосредственно из файла, расположенного на сервере. Я пишу как
while(socketdf = accept(...)) { dup2(filefd, socketfd); }
Тем не менее, это не работает, это возможно? Можете ли вы дать мне совет по этому поводу? Thanx
1 ответ
dup2()
не работает так - то, что вы в конечном итоге делаете здесь, закрывается socketfd
и заменив его копией filefd
,
Невозможно напрямую подключить сокет к файлу, как то, что вы пытаетесь сделать здесь - вам нужно будет "перекачать" данные из файла в сокет в вашем приложении. sendfile()
Системный вызов значительно упростит ситуацию.