[Vienna-pm] Nicht erlaubter seek ??

Bernd Petrovitsch bernd at firmix.at
Mon May 23 05:48:06 PDT 2005


On Mon, 2005-05-23 at 13:30 +0200, LAUN Wolfgang wrote:
> Welches OS?
> Welche Perl-Version? 
> 
> Es gab da einmal auf P5P eine Diskussion mit
> Solaris und seek-Problem nach fork; lief - glaube
> ich - auf einen Bug in Solaris hinaus; irgendeine
> Positionsangabe wird da nicht sauber zwischen 
> den Filehandles getrennt. (Ich konnte das auch
> mit einem C-Programm nachbauen - ist also definitiv
> kein Perl-Problem.
> 
> Unter Linux geht das Programm problemlos.
> 
> Alternativen wären named pipes oder eine Socket-Verbindung.

Unixe unterscheiden grundsätzlich seekable und unseekable Devices (und
das ist auch die einzige gröbere Unterscheidung, die mWn existiert).

Seekable sind Files, Block- und einige Char-Devices (wo es geht bzw.
sinnvoll implementierbbar ist).

Unseekable sind Pipes (named und unnamed) und Netzwerkverbindungen (es
mag sein, daß es irgendwo Hacks und Extensions gibt, die da sehr wohl
lseek() (unter gewissen Umständen bzw. Randbedingungen) implementieren,
aber ich würd' mal davon ausgehen, daß es das nicht geht).
Warum sind die nicht allgemein seekable?
Wie soll man den Filepointer bei einer Netzwerkverbindung 100KB
rückwärts positionieren?

Und das ist zumindest eine Eigenschaft des OSes (und nicht nur perl).

	Bernd
-- 
Firmix Software GmbH                   http://www.firmix.at/
mobil: +43 664 4416156                 fax: +43 1 7890849-55
          Embedded Linux Development and Services





More information about the Vienna-pm mailing list