linux-l: 4 GB - Datei
Volker Mueller
volker.mueller at gmx.de
Mo Okt 9 20:23:02 CEST 2000
On Mon, 9 Oct 2000, Soeren Sonnenburg wrote:
[... unlink mit C ...]
... und genauso sollte es doch moeglich sein, das File wieder an tar
zu verfuettern:
/* file: tostream.c */
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
/* use int main(...argc...argv) instead of "void main(void)"! */
void main(void) {
int fd;
int c;
int count;
int tmp;
/* use argv[1] instead of "/tmp/..."! */
fd = open("/tmp/tostream.c", O_RDONLY);
do {
count = read(fd, &c, 1);
tmp = write(1 /* (stdout) */, &c, 1);
} while (count > 0);
}
(Wobei bei open() natuerlich argv[1] ausgewertet und der Name
my_very_large_file.tar verwendet werden sollte (hatte grade keine Lust dazu).
Das da oben ist natuerlich _so_ nicht unbedingt _die_ Loesung, sondern nur
eine Idee ...)
und die Ausgabe von stdout nach tar umleiten, das dann von stdin liest:
prompt> tostream my_very_large_file.tar | tar -xf -
Oder so aehnlich (kanns nicht testen, da ich keine Files >2GB habe).
Volker
--
volker at flinux:~[535]> echo "#include <stdio.h>
#define N 4 + 5
#define Z 7 + 3
void main (void) { printf(\"%i * %i = %i\n\", N, Z, N * Z); }">_.c;make _;./_
Mehr Informationen über die Mailingliste linux-l