[Vienna-pm] Datei binär kopieren (unter Windows)

Peter J. Holzer hjp-vienna-pm-list at hjp.at
Tue Jun 3 18:45:28 CDT 2003


On 2003-06-02 22:45:21 +0200, Peter Seitz wrote:
> ich möchte eine (Grafik-)Datei binär kopieren. Da ich nicht weiß, ob
> mein Programm unter Linux oder unter Windows ausgeführt wird möchte
> ich es Betriebssystemunabhängig machen. Mein code unter ActiveState
> Perl und Windows 98:
> 
>     open (INPUT, $input) ||
>       die "Can't Open Input File $input: $!\n";
>     binmode (INPUT);
[...]
>       open (OUTPUT, ">$output") ||
>         die "Can't Open Output File $output: $!\n";
> 
>       while ($len=sysread(INPUT, $buf, 1024)) {
>         print OUTPUT $buf;
>       }
> 
> 
> Einige Dateien werden sauber kopiert, andere jedoch sind zerstört.
> Sie haben eine unterschiedliche Länge.

Sie werden länger, stimmts? Und zwar um genau so viele Bytes wie \n's
enthalten sind?

> Was mache ich falsch?

Du hast
    binmode (OUTPUT);
vergessen.

> Ist es sinnvoll die Dateigröße festzustellen und dann in einem Schubs
> die Datei zu lesen?

Kommt auf die Größe der Datei an.

> Das könnte aber IMHO bei sehr großen Dateien das Programm auch zum
> Absturz bringen, oder?

Ja.

	hp

-- 
   _  | Peter J. Holzer    | Latein ist das humanoide Äquivalent
|_|_) | Sysadmin WSR       | zu Fortran.
| |   | hjp at hjp.at         |
__/   | http://www.hjp.at/ |    -- Alexander Bartolich in at.linux
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.pm.org/pipermail/vienna-pm/attachments/20030604/576a6990/attachment.bin


More information about the Vienna-pm mailing list