65535 fichiers ouvert simultanément

Signaler
Messages postés
42
Date d'inscription
jeudi 1 avril 2004
Statut
Membre
Dernière intervention
7 octobre 2006
-
Messages postés
152
Date d'inscription
dimanche 22 janvier 2006
Statut
Membre
Dernière intervention
26 mars 2007
-
Lu All,

J'ai un soucis sur mon dev. J'ai besoin d'ouvrir 65535 fichiers simultanément sans les fermer. J'utilise le code suivant :

#include <stdio.h>
#include <conio.h>
//#include <windows.h>

FILE *fichier_pointeur_sebf[65535];
char nom_du_fichier[21]="stockage\";

int main()
{
int i;

for (i=0;i<520;i++)
{
sprintf(nom_du_fichier+9,"%d.txt",i);
nom_du_fichier[16]='\0';
printf("%d:%d\n",i,fichier_pointeur_sebf[i]=fopen(nom_du_fichier,"a"));
}
}

Il m'ouvre les 508 premiers fichiers, puis il refuse tous les autres.

Pourquoi ? Ou se trouve la limitation ? Et comment la changer ?

@+




_SebF ["http://www.frameip.com" www.frameip.com] Un site pour les spécialistes IP

6 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Pk t'as besoin d'ouvrir autant de fichier ? Ca m'étonnerait que windows accepte d'ouvrir autant de fichier.

SI tu veux absolument faire un truc comme ca, tu créés non pas 65536
fichiers, mais 65535 buffers. Et une fois terminé, tu ouvres les
fichiers un par un et tu les remplis avec le contenu du buffer
correspondant.

Mais c'est complètement dingue ton truc. Pk pas tout mettre dans le meme fichier ?
Messages postés
42
Date d'inscription
jeudi 1 avril 2004
Statut
Membre
Dernière intervention
7 octobre 2006

J'ai trouvé la commande suivante _setmaxstdio qui permet d'ouvri jusqu'à 2048 fichiers. mais pas plus ;( Je l'ai essayé et ca fonctionne presque, il me limite à 2045 (3 de moins, je ne comprend pas pourquoi ?)

Pour quoi pas un fichier, parceque je veux écrire 100 giga de donnée et dans un fichier, les recherchez seront ....

L'idée des buffers est pas mal, mais ca va monter en mémoire beaucoup de data.

_SebF ["http://www.frameip.com" www.frameip.com] Un site pour les spécialistes IP
Messages postés
202
Date d'inscription
dimanche 18 mai 2003
Statut
Membre
Dernière intervention
6 mars 2010

les 3 de moins viens de cout,cerr et clog qui sont gérer comme des fichiers. de toute façon il te faudra écrire les fichiers les uns après les autres. Tu n'y arrivera pas a écrire 100 Gigas simultanément.


Voili,Voilou [;)]
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
100go de données dans un fichier. Suffit d'avoir un index au début du
fichier. Mais c'est certain que faut pas avoir besoin de faire des
modifications. Mais de toute facon, c'est hors de question d'ouvrir
60000 fichiers simultanément.
Messages postés
42
Date d'inscription
jeudi 1 avril 2004
Statut
Membre
Dernière intervention
7 octobre 2006

Merci pour tous ces renseignements.

Mais pourquoi c'est pas possible, ok ca prendra de la mémoire, ok ca prendra du proc, mais ca se maitrise.

Avec 2000 fichiers ouvert, mon code se déroule très bien. Alors avec 65535, je ne voit pas où serait la limite à ne pas dépasser.

@+

_SebF ["http://www.frameip.com" www.frameip.com] Un site pour les spécialistes IP
Messages postés
152
Date d'inscription
dimanche 22 janvier 2006
Statut
Membre
Dernière intervention
26 mars 2007

ta pas peur que ton pc plante a ouvrir autant de fichier simultanément
quesque tu veux faire ???

Have Fun !