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]