#1 Le 29/03/2010, à 20:58
- funkalee
[Résolu]La taille maximum pour un pathname
Bonjour/Bonsoir
je recherche la taille maximum géré par le système pour un pathname (/home/user/parci/parla),éventuellement comment récupérer cette valeur.
Dernière modification par funkalee (Le 30/03/2010, à 11:26)
Hors ligne
#2 Le 29/03/2010, à 21:48
- AlexandreP
Re : [Résolu]La taille maximum pour un pathname
Il ne semble pas y avoir de limite de caractères pour un chemin absolu. Si tu regardes le document comparant les systèmes de fichiers dans Wikipedia, tu verras toutefois des limitations sur la taille des noms de fichiers.
«La capacité d'apprendre est un don; La faculté d'apprendre est un talent; La volonté d'apprendre est un choix.» -Frank Herbert
93,8% des gens sont capables d'inventer des statistiques sans fournir d'études à l'appui.
Hors ligne
#3 Le 29/03/2010, à 22:01
- grim7reaper
Re : [Résolu]La taille maximum pour un pathname
Si tu codes en C c'est définit dans limits.h (chez moi il est dans /usr/include/linux) sous le nom de PATH_MAX.
Chez moi j'ai ça :
#define PATH_MAX 4096 /* # chars in a path name including nul */
Enfin, je ne pense pas que cette restriction soit limité au C, mais à vérifier...
Dernière modification par grim7reaper (Le 29/03/2010, à 22:02)
Hors ligne
#4 Le 30/03/2010, à 09:20
- Link31
Re : [Résolu]La taille maximum pour un pathname
Enfin, je ne pense pas que cette restriction soit limité au C, mais à vérifier...
C'est une limitation au niveau du noyau lui-même :
/usr/src/linux/include/linux/limits.h
#define NR_OPEN 1024
#define NGROUPS_MAX 65536 /* supplemental group IDs are available */
#define ARG_MAX 131072 /* # bytes of args + environ for exec() */
#define LINK_MAX 127 /* # links a file may have */
#define MAX_CANON 255 /* size of the canonical input queue */
#define MAX_INPUT 255 /* size of the type-ahead buffer */
#define NAME_MAX 255 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
#define PIPE_BUF 4096 /* # bytes in atomic write to a pipe */
#define XATTR_NAME_MAX 255 /* # chars in an extended attribute name */
#define XATTR_SIZE_MAX 65536 /* size of an extended attribute value (64k) */
#define XATTR_LIST_MAX 65536 /* size of extended attribute namelist (64k) */
#define RTSIG_MAX 32
Hors ligne
#5 Le 30/03/2010, à 10:52
- funkalee
Re : [Résolu]La taille maximum pour un pathname
je code en java, donc pour la taille du nom d'un fichier dépassé les 245 caractères ça pose un problème pour les manipulations genre destruction à partir de gnome(à la souris) il m'envoie un message du genre le nom est trop long le fichier sera directement détruit sans passer par la case corbeille.
Impossible de créer le fichier d'informations de mise à la corbeille : Nom de fichier trop long
Donc en faites la recherche de la taille max du pathname c'est pour coder une base de données de mes fichiers donc je cherche à définir une valeur max pour le champs path, en ce qui concerne le champ name di fichier j'ai fixé à 240 la taille de mon varchar.
Mon disque ou se trouve mes données est en ext4, et d'apres l'article de wiki le pathname n'as pas de limite défini mais 4096 quand même.
structures have no inherent limit. Particular Installable File System drivers and operating systems may impose limits of their own, however. MS-DOS does not support full pathnames longer than 260 bytes for FAT12 and FAT16. Windows NT does not support full pathnames longer than 32,767 bytes for NTFS. Linux has a pathname limit of 4,096.
chez moi limit.h il est la :
/usr/src/linux-headers-2.6.31-20-generic/include/linux/limits.h
#ifndef _LINUX_LIMITS_H
#define _LINUX_LIMITS_H
#define NR_OPEN 1024
#define NGROUPS_MAX 65536 /* supplemental group IDs are available */
#define ARG_MAX 131072 /* # bytes of args + environ for exec() */
#define LINK_MAX 127 /* # links a file may have */
#define MAX_CANON 255 /* size of the canonical input queue */
#define MAX_INPUT 255 /* size of the type-ahead buffer */
#define NAME_MAX 255 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
#define PIPE_BUF 4096 /* # bytes in atomic write to a pipe */
#define XATTR_NAME_MAX 255 /* # chars in an extended attribute name */
#define XATTR_SIZE_MAX 65536 /* size of an extended attribute value (64k) */
#define XATTR_LIST_MAX 65536 /* size of extended attribute namelist (64k) */
#define RTSIG_MAX 32
#endif
Résumons :
la taille max pour un nom de fichier est 255, mais passé 245 gnome commence à mal gérer
la taille max pour le pathname c'est 4096, mais je crains que gnome montre ses limites avant après ça serait intéressant de dénicher ou se trouve les déclarations des limites de gnome.
Dernière modification par funkalee (Le 30/03/2010, à 11:37)
Hors ligne