Well... en unix posix on a des macros genre _POSIX_MAX_PATH_LEN_ (à vérifier dans la norme).
ok, bonne info, merci !
Maintenant... tu viens de découvrir la cause numéro 1 des bugs, tour de sécurités, défauts de portabilité, plantages : l'allocation statique.
ouais surtout que je suis un complet débutant en C ...
Là c'est pas du C.
Principe de programmation : à priori toute constante est une cause de bug ou de fonctionnalité foireuse (pourquoi je ne peux rentrer que 1000 objets dans le machin et pas 1010 ? Parce que le programmeur il a mit 1000 à un endroit parce qu'il pensait qu'on n'aurait jamais besoin de plus), pourquoi limiter les noms à 32 car quand on reçoit des malgaches hein ?
Il y a deux contournements :
- passer par de l'allocation dynamique. C'est pas trop compliqué, mais il faut la patience de le faire. Dans 90% des cas l'utilisation d'une taille fixe résulte d'une sous évaluation (bahh allez personne n'aura jamais besoin de plus de 640ko de mémoire..) fantaisiste et trop rapide.
- passer par des macros, et ce principalement pour des choses qui concernent le système qui lui contient un certain nombre de choses fixes.
FiLH
-- FiLH photography. A taste of freedom in a conventional world. Web: http://www.filh.org e-mail FAQ fr.rec.photo : http://frp.parisv.com/ Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/
pere.noel@laponie.com.invalid (Une bévue) writes:
FiLH <filh@filh.orgie> wrote:
Well... en unix posix on a des macros genre _POSIX_MAX_PATH_LEN_ (à
vérifier dans la norme).
ok, bonne info, merci !
Maintenant... tu viens de découvrir la cause numéro 1 des bugs, tour de
sécurités, défauts de portabilité, plantages : l'allocation statique.
ouais surtout que je suis un complet débutant en C ...
Là c'est pas du C.
Principe de programmation : à priori toute constante est une cause de
bug ou de fonctionnalité foireuse (pourquoi je ne peux rentrer que
1000 objets dans le machin et pas 1010 ? Parce que le programmeur il a
mit 1000 à un endroit parce qu'il pensait qu'on n'aurait jamais besoin
de plus), pourquoi limiter les noms à 32 car quand on reçoit des
malgaches hein ?
Il y a deux contournements :
- passer par de l'allocation dynamique. C'est pas trop compliqué, mais
il faut la patience de le faire. Dans 90% des cas l'utilisation d'une
taille fixe résulte d'une sous évaluation (bahh allez personne n'aura
jamais besoin de plus de 640ko de mémoire..) fantaisiste et trop rapide.
- passer par des macros, et ce principalement pour des choses qui
concernent le système qui lui contient un certain nombre de choses
fixes.
FiLH
--
FiLH photography. A taste of freedom in a conventional world.
Web: http://www.filh.org e-mail filh@filh.org
FAQ fr.rec.photo : http://frp.parisv.com/
Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/
Well... en unix posix on a des macros genre _POSIX_MAX_PATH_LEN_ (à vérifier dans la norme).
ok, bonne info, merci !
Maintenant... tu viens de découvrir la cause numéro 1 des bugs, tour de sécurités, défauts de portabilité, plantages : l'allocation statique.
ouais surtout que je suis un complet débutant en C ...
Là c'est pas du C.
Principe de programmation : à priori toute constante est une cause de bug ou de fonctionnalité foireuse (pourquoi je ne peux rentrer que 1000 objets dans le machin et pas 1010 ? Parce que le programmeur il a mit 1000 à un endroit parce qu'il pensait qu'on n'aurait jamais besoin de plus), pourquoi limiter les noms à 32 car quand on reçoit des malgaches hein ?
Il y a deux contournements :
- passer par de l'allocation dynamique. C'est pas trop compliqué, mais il faut la patience de le faire. Dans 90% des cas l'utilisation d'une taille fixe résulte d'une sous évaluation (bahh allez personne n'aura jamais besoin de plus de 640ko de mémoire..) fantaisiste et trop rapide.
- passer par des macros, et ce principalement pour des choses qui concernent le système qui lui contient un certain nombre de choses fixes.
FiLH
-- FiLH photography. A taste of freedom in a conventional world. Web: http://www.filh.org e-mail FAQ fr.rec.photo : http://frp.parisv.com/ Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/
pere.noel
FiLH wrote:
- passer par de l'allocation dynamique. C'est pas trop compliqué, mais il faut la patience de le faire.
là, c'est vrai il faut de la patience...
Dans 90% des cas l'utilisation d'une taille fixe résulte d'une sous évaluation (bahh allez personne n'aura jamais besoin de plus de 640ko de mémoire..) fantaisiste et trop rapide.
ma taille fixe pour un file name, je l'ai mise à 1024, ce qui fait 1023 octets utiles en UTF16 soit 1 de plus que ce que donne pour max, Apple.
par contre, provisoirement, pour un full path j'ai mis en fixe 4096, soit 4 X sizeof(file name), qui peut devenir court si un chinois utilise des noms de dossier/fichiers en big5, (je ne sais si cela se pratique, j'aimerais bien faire un p'tit essai sur ma béquanne d'ailleurs) là l'alloc dynamique pourra m'être utile. -- une bévue
FiLH <filh@filh.org> wrote:
- passer par de l'allocation dynamique. C'est pas trop compliqué, mais
il faut la patience de le faire.
là, c'est vrai il faut de la patience...
Dans 90% des cas l'utilisation d'une
taille fixe résulte d'une sous évaluation (bahh allez personne n'aura
jamais besoin de plus de 640ko de mémoire..) fantaisiste et trop rapide.
ma taille fixe pour un file name, je l'ai mise à 1024, ce qui fait 1023
octets utiles en UTF16 soit 1 de plus que ce que donne pour max, Apple.
par contre, provisoirement, pour un full path j'ai mis en fixe 4096,
soit 4 X sizeof(file name), qui peut devenir court si un chinois utilise
des noms de dossier/fichiers en big5, (je ne sais si cela se pratique,
j'aimerais bien faire un p'tit essai sur ma béquanne d'ailleurs) là
l'alloc dynamique pourra m'être utile.
--
une bévue
- passer par de l'allocation dynamique. C'est pas trop compliqué, mais il faut la patience de le faire.
là, c'est vrai il faut de la patience...
Dans 90% des cas l'utilisation d'une taille fixe résulte d'une sous évaluation (bahh allez personne n'aura jamais besoin de plus de 640ko de mémoire..) fantaisiste et trop rapide.
ma taille fixe pour un file name, je l'ai mise à 1024, ce qui fait 1023 octets utiles en UTF16 soit 1 de plus que ce que donne pour max, Apple.
par contre, provisoirement, pour un full path j'ai mis en fixe 4096, soit 4 X sizeof(file name), qui peut devenir court si un chinois utilise des noms de dossier/fichiers en big5, (je ne sais si cela se pratique, j'aimerais bien faire un p'tit essai sur ma béquanne d'ailleurs) là l'alloc dynamique pourra m'être utile. -- une bévue
FiLH
(Une bévue) writes:
FiLH wrote:
- passer par de l'allocation dynamique. C'est pas trop compliqué, mais il faut la patience de le faire.
là, c'est vrai il faut de la patience...
Dans 90% des cas l'utilisation d'une taille fixe résulte d'une sous évaluation (bahh allez personne n'aura jamais besoin de plus de 640ko de mémoire..) fantaisiste et trop rapide.
ma taille fixe pour un file name, je l'ai mise à 1024, ce qui fait 1023
Non. Utilises les macros de l'os c'est fait pour ça. Tout autre valeur est une erreur et une source de bug.
FiLH
-- FiLH photography. A taste of freedom in a conventional world. Web: http://www.filh.org e-mail FAQ fr.rec.photo : http://frp.parisv.com/ Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/
pere.noel@laponie.com.invalid (Une bévue) writes:
FiLH <filh@filh.org> wrote:
- passer par de l'allocation dynamique. C'est pas trop compliqué, mais
il faut la patience de le faire.
là, c'est vrai il faut de la patience...
Dans 90% des cas l'utilisation d'une
taille fixe résulte d'une sous évaluation (bahh allez personne n'aura
jamais besoin de plus de 640ko de mémoire..) fantaisiste et trop rapide.
ma taille fixe pour un file name, je l'ai mise à 1024, ce qui fait 1023
Non. Utilises les macros de l'os c'est fait pour ça. Tout autre valeur
est une erreur et une source de bug.
FiLH
--
FiLH photography. A taste of freedom in a conventional world.
Web: http://www.filh.org e-mail filh@filh.org
FAQ fr.rec.photo : http://frp.parisv.com/
Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/
- passer par de l'allocation dynamique. C'est pas trop compliqué, mais il faut la patience de le faire.
là, c'est vrai il faut de la patience...
Dans 90% des cas l'utilisation d'une taille fixe résulte d'une sous évaluation (bahh allez personne n'aura jamais besoin de plus de 640ko de mémoire..) fantaisiste et trop rapide.
ma taille fixe pour un file name, je l'ai mise à 1024, ce qui fait 1023
Non. Utilises les macros de l'os c'est fait pour ça. Tout autre valeur est une erreur et une source de bug.
FiLH
-- FiLH photography. A taste of freedom in a conventional world. Web: http://www.filh.org e-mail FAQ fr.rec.photo : http://frp.parisv.com/ Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/
pere.noel
FiLH wrote:
Non. Utilises les macros de l'os c'est fait pour ça. Tout autre valeur est une erreur et une source de bug.
où est-ce que je trouve ça ? comment utilise-t'on ces "macros de l'OS" ???
-- une bévue
FiLH <filh@filh.org> wrote:
Non. Utilises les macros de l'os c'est fait pour ça. Tout autre valeur
est une erreur et une source de bug.
où est-ce que je trouve ça ? comment utilise-t'on ces "macros de l'OS"
???
où est-ce que je trouve ça ? comment utilise-t'on ces "macros de l'OS" ???
man getconf, par exemple ?
% getconf PATH_MAX / 1024
--
pere.noel
Eric Jacoboni wrote:
man getconf, par exemple ?
ok; merci, je ne connaissais pas getconf...
% getconf PATH_MAX / 1024
euh ? j'ai aussi :
getconf NAME_MAX / 255
donc, d'après la TN 2124, ces résultats sont en caractères pas en octets...
je retiens que PATH_MAX == 4 X NAME_MAX ce que j'ai fait, me reste à savoir comment appeller ça depuis C, j'imagine qu'il y a un header qqpart... -- une bévue
Eric Jacoboni <jaco@neottia.net> wrote:
man getconf, par exemple ?
ok; merci, je ne connaissais pas getconf...
% getconf PATH_MAX /
1024
euh ? j'ai aussi :
getconf NAME_MAX /
255
donc, d'après la TN 2124, ces résultats sont en caractères pas en
octets...
je retiens que PATH_MAX == 4 X NAME_MAX ce que j'ai fait, me reste à
savoir comment appeller ça depuis C, j'imagine qu'il y a un header
qqpart...
--
une bévue
donc, d'après la TN 2124, ces résultats sont en caractères pas en octets...
je retiens que PATH_MAX == 4 X NAME_MAX ce que j'ai fait, me reste à savoir comment appeller ça depuis C, j'imagine qu'il y a un header qqpart... -- une bévue
Eric Jacoboni
(Une bévue) writes:
je retiens que PATH_MAX == 4 X NAME_MAX ce que j'ai fait, me reste à savoir comment appeller ça depuis C, j'imagine qu'il y a un header qqpart...
sys/syslimits.h, ou limits.h pour les valeurs POSIX.
--
pere.noel@laponie.com.invalid (Une bévue) writes:
je retiens que PATH_MAX == 4 X NAME_MAX ce que j'ai fait, me reste à
savoir comment appeller ça depuis C, j'imagine qu'il y a un header
qqpart...
sys/syslimits.h, ou limits.h pour les valeurs POSIX.
int main(void) { long path_max = pathconf("/", _PC_PATH_MAX); printf("%ldn", path_max); return 0; }
--
FiLH
(Une bévue) writes:
FiLH wrote:
Non. Utilises les macros de l'os c'est fait pour ça. Tout autre valeur est une erreur et une source de bug.
où est-ce que je trouve ça ?
Dans les headers systèmes usuels
comment utilise-t'on ces "macros de l'OS" ???
#include <sys/param.h>
Par exemple.
FiLH
-- FiLH photography. A taste of freedom in a conventional world. Web: http://www.filh.org e-mail FAQ fr.rec.photo : http://frp.parisv.com/ Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/
pere.noel@laponie.com.invalid (Une bévue) writes:
FiLH <filh@filh.org> wrote:
Non. Utilises les macros de l'os c'est fait pour ça. Tout autre valeur
est une erreur et une source de bug.
où est-ce que je trouve ça ?
Dans les headers systèmes usuels
comment utilise-t'on ces "macros de l'OS"
???
#include <sys/param.h>
Par exemple.
FiLH
--
FiLH photography. A taste of freedom in a conventional world.
Web: http://www.filh.org e-mail filh@filh.org
FAQ fr.rec.photo : http://frp.parisv.com/
Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/
Non. Utilises les macros de l'os c'est fait pour ça. Tout autre valeur est une erreur et une source de bug.
où est-ce que je trouve ça ?
Dans les headers systèmes usuels
comment utilise-t'on ces "macros de l'OS" ???
#include <sys/param.h>
Par exemple.
FiLH
-- FiLH photography. A taste of freedom in a conventional world. Web: http://www.filh.org e-mail FAQ fr.rec.photo : http://frp.parisv.com/ Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/