PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : fopen und Bin ...



Ing0s
24-02-2000, 09:42
Hallo zusammen !!
Ich wollte was in eine Bin Datei speichern:
stream=fopen("test.abc","wb");
Er wollte aber die Daten im ASCII speichern.
Ich mir die man fopen angesehen aber ich habe nichts ueber Bin gefunden.
Wie kann ich unter Linux Dateien Binaer speichern ?

MfG Ing0s

kabalak
24-02-2000, 21:54
Um unter Linux binären Zugriff zu erhalten mußt du read/write einsetzen .

Schau dir mal die man-pages zu
read/write an .

Mit den anderen Routinen wird normalerweise
nu ASCII gelesen/geschrieben .

Hagen von Tronje
25-02-2000, 00:23
Hi,

UN!X/Linux unterscheidet nicht zwischen
binaeren und textdateien.

Es sind einfach nur Dateien.

> Um unter Linux binären Zugriff zu erhalten mußt du read/write einsetzen .
Noe http://www.linuxforen.de/ubb/wink.gif

> Mit den anderen Routinen wird normalerweise
> nu ASCII gelesen/geschrieben .
Quark http://www.linuxforen.de/ubb/smile.gif



#include <stdio.h>

int main (int argc, char **argv)
{
char tmpchar;
FILE *inputstream;
FILE *outputstream;

inputstream = fopen (argv[1], "r");
outputstream = fopen (argv[2], "w");

for ( ; ; ) {
tmpchar = fgetc (inputstream);
if (feof (inputstream)) {
printf(" Oh my god, we copied a 'binary' file !?\n");
return 0;
}
fputc (tmpchar, outputstream);
}

return 0;
}


tux@erde [~] > gcc -o copy -Wall -ansi -pedantic copy.c
tux@erde [~] > ./copy /bin/ls dir
Oh my god, we copied a 'binary' file !?
tux@erde [~] > diff /bin/ls dir
tux@erde [~] >

Hagen


[Diese Nachricht wurde von Hagen von Tronje am 25. Februar 2000 editiert.]

Ing0s
25-02-2000, 09:12
Danke !!

MfG Ing0s

wolfgang
01-03-2000, 21:22
zu deiner binaeren i/o operation folgender tip:
linux unterscheidet wohl nicht zwischen bin und sonstwasdateien wie die eine richtige antwort schon besagt.
ABER:
ich habe heute in den man-pages gelesen dass der gemischte zugriff mit read/write und fprintf/fscanf oder anderen solchen funktionen probleme machen kann.

(somit wenigstens in der handhabung deiner dateien ein unterschied zwischen bin und z.bsp text)

vielleicht hilfts
gruss
wolfgang :-)