INR_INIT (3I)     version 4.6.9     March 2022

User Intro    Prog Intro    Liste des programmes    Liste des manuels
Table of Contents


NAME

inr_init, inr_initm, initopts, clearopts - initialisations pour utilisation de INRIMAGE.

SYNOPSIS

inr_init(argc ,argv,progvers,ucmd,udetail)
int argc; char **argv;
char *progvers, *ucmd, *udetail;

inr_initm(argc ,argv,progvers,cmds)
int argc; char **argv;
char *progvers;

struct multi_cmd *cmds;

struct multi_cmd { char *name; /* basename of command */ char *ucmd; /* short usage message */ char *udetail; /* detailed message */ };

DESCRIPTION

inr_init, inr_initm effectuent diverses initialisations pour l'utilisation de la bibliothèque INRIMAGE. Les arguments nuls sont ignorés.

Si argc et argv ne sont pas nuls, le programme appelle initopts qui copie les arguments argc, argv dans les variables globales xargc, xargv qui sont utilisées notamment par igetopt.

Si progvers n'est pas nul, il contient l'adresse d'une chaine de caractères représentant le nom de version du programme (imprimé avec l'option -vers ou avec le "help-message" de iusage_).

ucmd et udetail sont utilisés dans inr_init pour appeler iusage_. ucmd est une chaine de caractères qui doit contenir un message d'une ligne listant les options de la commande (sans le nom de celle-ci). udetail doit contenir, éventuellement sur plusieurs lignes, des informations complémentaires, telles que la description succinte de certaines options.

cmds est utilisé par inr_initm pour les commandes à variantes multiples (plusieurs noms pour le même exécutable ou variante sélectionnée par une option parmi N). C'est une table de structures, dont la derniere est nulle. Chaque structure décrit l'une des variantes : elle contient le nom de la commande ou de l'option (si le 1er caractère est -) et les 2 messages de help (analogues à ucmd et udetail). Le programme renvoie l'indice de la variante, ou -1.

Ces programmes appellent kdopts_ pour lire les options -D, -k nb_Ko, et -vers :
-D passe en mode debug (met 1 dans debug_)
-k met nb_Ko dans la variable koctet_, qui est utilisée par certains programmes, pour controler la quantité de mémoire allouée.
-vers fait imprimer sur stderr un message contenant le nom de la commande, sa version (définie par progvers, et la version de la bibliothèqie INRIMAGE.

Enfin, inr_init, inr_initm appellent hlpopt_ pour traiter les options -help et -Help :
avec -Help on obtiendra simplement la liste des options (on appelle iusage_(ucmd,"");)
avec -help on obtiendra le message d'aide complet (appel de iusage_(ucmd,udetail);)

clearopts réinitialise le mécanisme d'options. Si on ne modifie pas xargc, xargv, on pourra relire les mêmes options. Si on leur donne d'autres valeurs, on pourra utiliser igetopt pour analyser une nouvelle série d'options.

initopts copie les arguments argc, argv de la fonction main dans les variables globales xargc, xargv qui sont utilisées par igetopt.
Il est recommandé d'utiliser inr_init plutôt que initopts.

EXEMPLE

static char Ucmd[]= "[-D] [-x n1 n2] [-N=10] image";
static char Udetail[]= ".....";
main(argc,argv)
int argc;char **argv;
	inr_init(argc,argv,"2.0",Ucmd,Udetail);

SEE ALSO

Inrimage(1i) pour les options générales.
igetopt(3i) .