Re: Linux, Perl und Pipe

Robert Jenni <[email protected]>
Newsgroups gmane.linux.suse.programming
Message-ID <[email protected]>
#!/usr/bin/perl

use Net::FTP;

$ftp = Net::FTP->new ("192.168.1.3");
$ftp->login ('user','pwd');
$ftp->type ('I');
$ftp->get ($ARGV[0]);
$ftp->quit;

so geht z. B. es einfacher

Robert

> Guten Morgen allerseits,
>
> in einem Perl-Skript verwende ich u.a. Zeilen dieser Art:
>   open FTP, "| ftp -i -n -v -p $remoteHost"; sleep 5;
>   print FTP "user $user $pass\n"; sleep 5;
>   ...
>
> _Ohne_ die sleep-Befehle nach jeder Inanspruchnahme der Pipe
> werden die Daten offenbar viel zu schnell aufeinanderfolgend
> durch die Pipe durchgepresst, so daß es seitens des
> FTP-Programmes entsprechende Fehlermeldungen hagelt.
> _Mit_ sleep dagegen klappt es einwandfrei.
>
> Jetzt möchte ich gerne wissen: Wieso?
>
> Bisher bin ich immer davon ausgegangen:
>
> 1.) Es können nur soviel Daten in eine Pipe reingeschrieben
>     werden, wie vom Empfängerprogramm entgegengenommen werden.
>     D.h. die Datenquelle "wartet" mit neuen Daten solange bis
>     die Daten am Ziel-Ende abgeholt sind.
>
> 2.) Ein Programm nimmt nur soviele Daten aus einer Pipe wie
>     es auch verarbeiten kann.
>
> Welche Annahme ist nun falsch?
>
> Viele Grüße,
> Ralph
> (Suse 9.0 mit lukemftp-1.5)
>
> --
> Weitersagen: GMX DSL-Flatrates mit Tempo-Garantie!
> Ab 4,99 Euro/Monat: http://www.gmx.net/de/go/dsl

	

	
		
___________________________________________________________ 
Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de

-- 
Um die Liste abzubestellen, schicken Sie eine Mail an:
    [email protected]
Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken
Sie eine Mail an: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.