Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/07/2010, à 22:40

ehmicky

[Résolu]Limite du nombre d'octets sur une seule ligne de commande

Bonjour à tous !

Je voulais savoir ce qu'il en était de la limite du nombre de mots (après expansion du shell) et/ou d'octets entrés sur une seule ligne de commande.
J'ai vu qu'il y avait une limite de 128 Ko dans le noyau, qu'on peut vérifier avec :

getconf ARG_MAX

Mais je me demandais si à cela se rajoutaient des limites propres à la distribution, à Bash ou même à gnome-terminal ?
Juste une petite question pour la curiosité en fait ! Mais merci à vous wink

Dernière modification par ehmicky (Le 21/07/2010, à 19:21)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#2 Le 18/07/2010, à 23:02

le hollandais volant

Re : [Résolu]Limite du nombre d'octets sur une seule ligne de commande

Salut !

Dans un script, les arguments en Bash sont récupérables via les variables $0, $1, $2 etc.

Il me semble que ça s'arrête à 9. (pour le Bash). ensuite, d'autres shells peuvent en accepter plus. Si ce n'est pas le cas, on utilise Shift (la commande dans un script, pas la touche du clavier).

http://www.commentcamarche.net/faq/5444-bash-les-parametres

http://www.siteduzero.com/tutoriel-3-123626-afficher-et-manipuler-des-variables.html#ss_part_6

EDIT : et merci pour la commande, je savais pas. Elle me renvoie perso 2097152. 2Mio donc, c'est assez énorme pour une ligne de commande^^

Dernière modification par le hollandais volant (Le 18/07/2010, à 23:03)

Hors ligne

#3 Le 19/07/2010, à 02:41

ehmicky

Re : [Résolu]Limite du nombre d'octets sur une seule ligne de commande

Merci pour ta réponse,

Cependant, je ne pense pas que ce soit le cas : en effet, avec la syntaxe ${10} ${11}, tu peux utiliser les arguments au-delà du 9ème.
Ma question concerne par ailleurs plus le fait de pouvoir entrer (et non utiliser ou faire référence à) une myriade d'arguments (ou d'octets) sans que Bash ou gnome-terminal ne produise une erreur.
Merci malgré tout !
J'ai fait donc de nouvelles recherches sur la question, et je n'ai rien trouvé, donc peut-être cela signifie-t-il que la seule limite est celle du noyau, mais l'un de vous a-t-il la confirmation ? smile

Dernière modification par ehmicky (Le 19/07/2010, à 02:42)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#4 Le 21/07/2010, à 19:20

ehmicky

Re : [Résolu]Limite du nombre d'octets sur une seule ligne de commande

Ok pour ceux que ça intéresse, il semblerait donc que la limite ARG_MAX du noyau (soit 128 Ko, soit 131072 octets, en général) soit la seule limite. J'ai testé grâce à un :

cat /dev/zero | tr \\0 0 | head -c128k | xargs echo

et la même chose avec 127k pour tester cela.

Donc, en résumé les find -exec {} + et autres xargs (sans l'option -I ou autres) qui peuvent produire des lignes de commande aux dimensions infinies plantent au-delà de 128Ko.

Dernière modification par ehmicky (Le 21/07/2010, à 19:21)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#5 Le 21/07/2010, à 20:31

Totor

Re : [Résolu]Limite du nombre d'octets sur une seule ligne de commande

c'est ce que dit johndo ici


-- Lucid Lynx --

Hors ligne

#6 Le 21/07/2010, à 20:52

ehmicky

Re : [Résolu]Limite du nombre d'octets sur une seule ligne de commande

Effectivement, en plus j'avais déjà vu ce topic, mais dans un autre contexte ^^
En attendant, le test que j'ai posté peut être raccourci :

 head -c128k /dev/zero | tr \\0 0 | xargs

Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne