Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Проблема с fcntl в АсtiveState.


Автор: fray 21.5.2008, 16:34
АсtiveState ругается на fcntl(); 
пишит следющее:
Your vendor has not defined Fcntl macro F_SETFL, F_GETFL, used at poll.pl line 90, 91.

Код

use Fcntl qw( F_GETFL F_SETFL O_NONBLOCK );
.......................
my $flags = fcntl($sd, F_GETFL, 0) or die "Can't get flags for the socket: $!\n";
fcntl($sd, F_SETFL, $flags|O_NONBLOCK) or die "Can't set flags for the socket: $!\n";


в линкусе все ок, как лечится в винде ?

Автор: KSURi 21.5.2008, 18:33
В Windows асинхронный ввод/вывод реализуется вроде только с помощью  select или WaitForObject

Автор: nitr 21.5.2008, 18:42
fray, на сколько я в курсе, fcntl.h для обеих этих ОС разный, Windows многое из этого "не поддерживает".

Лучше просмотреть файл fcntl.h.

Автор: fray 22.5.2008, 13:25
Цитата(KSURi @  21.5.2008,  18:33 Найти цитируемый пост)
В Windows асинхронный ввод/вывод реализуется вроде только с помощью  select или WaitForObject 


Цитата(nitr @  21.5.2008,  18:42 Найти цитируемый пост)
fray, на сколько я в курсе, fcntl.h для обеих этих ОС разный, Windows многое из этого "не поддерживает".

Да похоже в винде этого нет, пришлось заюзать cygwin-perl, а АctiveState-Perl удалить.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)