Функция записи требует Unistd.h на Unix, а как насчет Windows? - PullRequest
2 голосов
/ 16 апреля 2011

Я перешел с компьютера с Linux на Windows, и у меня возникают проблемы при компиляции кода, потому что эти две ОС не используют одни и те же заголовочные файлы.

Поскольку unistd.h явно не являетсяVisual C не включает функции read(), write(), close(), socklen_t() и bzero().Кто-нибудь может мне помочь с этим?

Я погуглил это: Есть ли замена для unistd.h для Windows (Visual C)?

Понятия не имеюкак работает unistd.h, и я не знаю, как написать свой код.Может кто-нибудь, пожалуйста, связать меня с одним?

Ответы [ 2 ]

10 голосов
/ 16 апреля 2011

read, write и close находятся в <io.h>, так же, как они традиционно были в Unix.

Случайно, я не знаю, что bzero вообще включено в Windows - если вас вообще волнует переносимость, вы обычно хотите вместо этого использовать memset.

socklen_t обычно не используется в Windows - большинство вещей, которые будут socklen_t в Unix, используют size_t или int в Windows (socklen_t в Unix в настоящее время является еще одной ссылкой натот же базовый тип, что и size_t, добавленный на случай, если он когда-нибудь пригодится - иначе, решение в поисках проблемы).

2 голосов
/ 16 апреля 2011

Лучше всего использовать MinGW для компиляции программы, которая включает (среди прочего) GCC (и его заголовки). Попробуйте установить его, а затем скомпилировать программу и посмотреть, все ли в порядке.

...