salut !
voila aujourd'hui j'ai lancé une baterie de tests sur un module que j'ai ecris.
parmis ces tests voici celui qui me fais poser des questions:
je remarque qu'a partir de i=1021, je ne peut plus ouvrir le fichier (au sein du meme processus)...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 #include <sys/ioctl.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include "MTV7109Accel.h" #include <stdio.h> int fd[2000]; int main(void){ int ret; short axis[3]; int i; for (i=0;i<2000;i++){ fd[i] = open("/dev/MTV7109Accel",O_RDWR); if(fd[i]<0){ printf("an't open for i=%d, aborting...\n",i); break; } } for (i--;i>=0;i--){ printf("closing for i=%d\n",i); close(fd[i]); } printf("done\n"); }
donc je voulais savoir quel etait la taille de la table des descripteurs de fichiers ? (1021 ?)
sinon autre question, dans les file_operations de mon module je n'ai pas defini la fonction open, c'est donc celle par default qui est appelée...mais est ce que celle ci alloue des donnée en memoire ?
parceque si je ne ferme jamais les fichiers ouverts, ca ne semble pas poser de probleme au driver ou au noyau...
je sais qu'il faut fermer un fichier ouvert, mais je ne peut pas controler ce que fais l'utilisateur...donc je voulais savoir si je devai ajouter un compteur d'utilisation pour verifier tout ca.
mais la table des descripteurs etant nuique au sein d'un processus, je me demande ausi si l'OS ne va pas tout seul fermer les fichiers ouverts ?
Partager