nichtblockierend lesen

nichtblockierend lesen

am 31.07.2006 10:37:41 von Frank Kulow

Hallo NG,

open2( \*Reader, \*Writer, "xy.exe");


....


if(es_gibt_was_zu_lesen){... }




wie kann ich denn "es_gibt_was_zu_lesen" realisieren ohne zu blockieren?


Gruß Frank

Re: nichtblockierend lesen

am 31.07.2006 10:58:38 von Christian Lackas

* Frank Kulow [2006-07-31]:

Hallo Frank,

> open2( \*Reader, \*Writer, "xy.exe");
> if(es_gibt_was_zu_lesen){... }
> wie kann ich denn "es_gibt_was_zu_lesen" realisieren ohne zu blockieren?

entweder mit select überprüfen, ob es zu lesen da ist, oder O_NONBLOCK
per fcntl setzen, damit das lesen nicht mehr blockiert:

perldoc -f select
perldoc IO::Select

perldoc -f fcntl
fcntl(2)

Gruß
Christian


--
Morgens 'n Bit, abends fit.
http://www.lackas.net/ Perl Delphi Linux MP3 Searchengines Domainchecker

Re: nichtblockierend lesen

am 31.07.2006 14:05:14 von Frank Kulow

da hab ich wohl schlechte Karten oder?:

Cannot set GLOB(0x182f95c) to non-blocking mode: Bad file descriptor


$ perl -v

This is perl, v5.8.7 built for MSWin32-x86-multi-thread



das selbe script mit:

$ perl -v

This is perl, v5.8.7 built for cygwin-thread-multi-64int


tut's


Frank

Re: nichtblockierend lesen

am 31.07.2006 21:56:20 von Christian Lackas

* Frank Kulow [2006-07-31]:

Hallo Frank,

> Cannot set GLOB(0x182f95c) to non-blocking mode: Bad file descriptor
> $ perl -v
> This is perl, v5.8.7 built for MSWin32-x86-multi-thread

es gibt einen Grund, warum es neben Windows noch richtige
Betriebssysteme gibt.

> das selbe script mit:
> $ perl -v
> This is perl, v5.8.7 built for cygwin-thread-multi-64int
> tut's

Ja, O_NONBLOCK gibt es nur unter Windows. Bleibt dir nur die Variante
mit select.

Gruß
Christian

--
Ihr da Ohm, macht doch, Watt ihr Volt.
http://www.lackas.net/ Perl Delphi Linux MP3 Searchengines Domainchecker