Il s'agit de la commande gperf qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
gperf - génère une fonction de hachage parfaite à partir d'un jeu de clés
SYNOPSIS
gperf [OPTION]... [FICHIER D'ENTREE]
DESCRIPTION
GNU 'gperf' génère des fonctions de hachage parfaites.
Si une option longue affiche un argument comme obligatoire, alors il est obligatoire pour l'équivalent
option courte aussi.
Sortie filet emplacement:
--fichier de sortie=DOSSIER Écrire la sortie dans le fichier spécifié.
Les résultats sont écrits sur la sortie standard si aucun fichier de sortie n'est spécifié ou s'il est -.
Entrée filet interprétation:
-e, --délimiteurs=LISTE DES DÉLIMITEURS
Autoriser l'utilisateur à fournir une chaîne contenant des délimiteurs utilisés pour séparer les mots-clés de
leurs attributs. La valeur par défaut est ",".
-t, --struct-type
Permet à l'utilisateur d'inclure une déclaration de type structuré pour le code généré. Tout
le texte avant %% est considéré comme faisant partie de la déclaration de type. Mots clés et compléments
les champs peuvent suivre, un groupe de champs par ligne.
--ignore-cas
Considérez les caractères ASCII majuscules et minuscules comme équivalents. Notez que les paramètres régionaux
les mappages de cas dépendants sont ignorés.
langues pour le sortie code:
-L, --Langue=NOM DE LA LANGUE
Génère du code dans la langue spécifiée. Les langages manipulés sont actuellement C++,
ANSI-C, C et KR-C. La valeur par défaut est C.
DÉTAILS in le sortie code:
-K, --nom-emplacement=Nom
Sélectionnez le nom du composant de mot-clé dans la structure de mot-clé.
-F, --suffixe-initialiseur=INITIALISATIONS
Initialiseurs pour des composants supplémentaires dans la structure de mot-clé.
-H, --hash-nom-fonction=Nom
Spécifiez le nom de la fonction de hachage générée. La valeur par défaut est « hachage ».
-N, --lookup-nom-fonction=Nom
Spécifiez le nom de la fonction de recherche générée. Le nom par défaut est 'in_word_set'.
-Z, --nom du cours=Nom
Spécifiez le nom de la classe C++ générée. Le nom par défaut est 'Perfect_Hash'.
-7, --sept bits
Supposons des caractères de 7 bits.
-l, --comparer-longueurs
Comparez les longueurs de clé avant d'essayer une comparaison de chaînes. Ceci est nécessaire si le
les mots-clés contiennent des octets NUL. Cela permet également de réduire le nombre de cordes
comparaisons faites lors de la recherche.
-c, --compare-strncmp
Générez un code de comparaison en utilisant strncmp plutôt que strcmp.
-C, --readonly-tables
Rendre le contenu des tables de recherche générées constant, c'est-à-dire en lecture seule.
-E, --énumération
Définissez des valeurs constantes en utilisant une énumération locale à la fonction de recherche plutôt qu'avec
définit.
-I, --comprend
Inclure le fichier d'inclusion système nécessaire au début du code.
-G, --table-globale
Générez le tableau statique des mots-clés en tant que variable globale statique, plutôt que
le cachant à l'intérieur de la fonction de recherche (qui est le comportement par défaut).
-P, --pic
Optimisez la table générée pour l'inclure dans les bibliothèques partagées. Cela réduit le
temps de démarrage des programmes utilisant une bibliothèque partagée contenant le code généré.
-Q, --string-pool-name=Nom
Spécifiez le nom du pool de chaînes généré par l'option --pic. Le nom par défaut est
« piscine à cordes ».
--null-chaînes
Utilisez des chaînes NULL au lieu de chaînes vides pour les entrées de table de mots clés vides.
-W, --nom-tableau-de-mots=Nom
Spécifiez le nom du tableau de liste de mots. Le nom par défaut est 'liste de mots'.
--length-nom-table=Nom
Spécifiez le nom du tableau de la table de longueur. Le nom par défaut est 'lengthtable'.
-S, --changer=COUNT
Oblige le code C généré à utiliser un schéma d'instruction switch, plutôt qu'un tableau
table de correspondance. Cela peut conduire à une réduction des besoins en temps et en espace pour
certains fichiers clés. L'argument COUNT détermine le nombre d'instructions switch
généré. Une valeur de 1 génère 1 commutateur contenant tous les éléments, une valeur de
2 génère 2 tableaux avec 1/2 des éléments dans chaque tableau, etc. Si COUNT est très
grand, disons 1000000, le code C généré effectue une recherche binaire.
-T, --omit-struct-type
Empêche le transfert de la déclaration de type vers le fichier de sortie. Utilisez cette option
si le type est déjà défini ailleurs.
Algorithme employés by gperf :
-k, --positions-clés=CLÉS
Sélectionnez les positions clés utilisées dans la fonction de hachage. La gamme de choix autorisés
entre 1-255, inclus. Les positions sont séparées par des virgules, les plages peuvent être
utilisé, et les positions clés peuvent se produire dans n'importe quel ordre. Aussi, le méta-caractère '*'
fait que la fonction de hachage générée considère TOUTES les positions clés, et $ indique
le "caractère final" d'une clé, par exemple $,1,2,4,6-10.
-D, --doublons
Gérez les mots-clés qui hachent pour dupliquer les valeurs. Ceci est utile pour certains hautement
ensembles de mots clés redondants.
-m, --multiple-itérations=ITÉRATIONS
Effectuer plusieurs choix de -i et -j valeurs et choisissez les meilleurs résultats. Cette
augmente le temps d'exécution d'un facteur d'itérations mais fait un bon travail en minimisant
la taille du tableau généré.
-i, --initial-asso=N
Fournissez une valeur initiale pour le tableau des valeurs associées. La valeur par défaut est 0.
une valeur plus grande aide à gonfler la taille de la table finale.
-j, --saut=JUMP-VALEUR
Affecte la "valeur de saut", c'est-à-dire jusqu'où avancer la valeur de caractère associée
lors de collisions. Doit être un nombre impair, la valeur par défaut est 5.
-n, --pas de strlen
N'incluez pas la longueur du mot-clé lors du calcul de la fonction de hachage.
-r, --Aléatoire
Utilise le caractère aléatoire pour initialiser la table de valeurs associée.
-s, --taille-multiple=N
Affecte la taille de la table de hachage générée. L'argument numérique N indique "comment
plusieurs fois plus grand ou plus petit" la plage de valeurs associée doit être, en relation
au nombre de clés, par exemple une valeur de 3 signifie "autoriser la valeur maximale associée
être environ 3 fois plus grand que le nombre de touches de saisie". Inversement, une valeur de
1/3 signifie "rendre la valeur maximale associée environ 3 fois plus petite que le nombre
des touches de saisie". Une table plus grande devrait réduire le temps requis pour une
recherche infructueuse, au détriment de l'espace table supplémentaire. La valeur par défaut est 1.
Informatif sortie:
-h, --Aidez-moi
Imprimez ce message.
-v, --version
Imprimez le numéro de version de gperf.
-d, --déboguer
Active l'option de débogage (produit une sortie détaillée à l'erreur standard).
Utiliser gperf en ligne en utilisant les services onworks.net
