linux-l: Grosse Datenfiles-value too large for defined data type

Frank Reker frank at reker.net
So Jul 15 16:48:00 CEST 2001


Am Wed, 11 Jul 2001 at 13:17:13 +0200 hat news folgendes geschrieben:

>   wir haben hier das Problem das wir Verzeichnisse mit DB Files (>5GB)
>   sicher wollen.
>   
>   Aber jetzt bringen alle Applikationen (mc, taper...) die selbe
>   Fehlermeldungen
>   
>   "file xxxx exists but can not be stat-ed:value too large for defined
>   data type while doing get info call"
>   
>   Das System läuft auf ReiserFS Kernel 2.4.5
>   

Entweder neue libc, und progs neu compilieren.
Oder mini-prog schreiben, das die Files in kleine Happen zerlegt.
-- snip --
#include <stdlib.h>
#include <stdio.h>
int
main (argc, argv) 
	int argc; 
	char ** agrgv; 
{
	char * filein, *fileout;
	FILE *fin, *fout;
	int i,j;
	char buffer[1024];

	if (argc < 2) {
		fprintf (stderr, "usage: mysplit <filename>\n");
		return -1;
	}
	filein=argv[1];
	fileout=malloc (strlen(filein)+5);
	if (!(fin=fopen (filein, "r"))) {
		fprintf (stderr, "can not open %s\n", filein);
		return -2;
	}
	for (i=0;1;i++) {
		if (feof (fin)) break;
		sprintf (fileout, "%s.%d", filein, i);
		if (!(fout=fopen (fileout, "w"))) {
			fprintf (stderr, "can not open %s\n", fileout);
			return -2;
		}
		for (j=0;j<1024*1024;j++){
			fread (buffer, 1024, 1, fin);
			fwrite (buffer, 1024, 1, fout);
		}
		fclose (fout);
	}
	fclose (fin);
	return 0;
}
-- snap --
speichere unter mysplit.c
cc -o mysplit mysplit.c
mysplit <filename>

not tested but should work.
Du erhaelst dann 5, 6, ... files mit dem Namen <filename>.1 ...
jeweils max 1GB gross.


-- 
Don't worry be happy ...
Ciao tex
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 240 bytes
Beschreibung: nicht verfügbar
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20010715/8021f04b/attachment.sig>


Mehr Informationen über die Mailingliste linux-l