lcrzo_misc(3)

NAME
lcrzo_misc - bibliotheque lcrzo : stdin, aleas, ...

CONTENU
/*    Bibliotheque reseau de Laurent Constantin (lcrzo)
                 Module lcrzo_misc
  Les fonctions presentes dans ce module assurent des taches diverses.
*/
/*-------------------------------------------------------------*/
/* Nom : lcrzo_init
   Description :
     Initialise lcrzo.
     Vous ne pouvez pas appeler cette fonction avec
     "lcrzo_er(lcrzo_init());", mais uniquement avec "lcrzo_init();",
     car les messages d'erreur ne peuvent etre affiches avant un
     succes de lcrzo_init.
   Parametre(s) d'entree :
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_init(void);
/* Nom : lcrzo_close
   Description :
     Arrete d'utiliser les fonctions de lcrzo.
   Parametre(s) d'entree :
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_close(void);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_close
   Description :
     Commence a utiliser les fonctions de lcrzo.
     Cette fonction est utile uniquement sur Windows, et si vous
     n'utilisez pas la famille lcrzo_process. Donc, en general,
     vous ne devriez pas avoir besoin de cette fonction.
   Parametre(s) d'entree :
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_init_forthreadonly(void);
/* Nom : lcrzo_close
   Description :
     Arrete d'utiliser les fonctions de lcrzo dans un thread
     de Windows.
   Parametre(s) d'entree :
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_close_forthreadonly(void);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_rand_init
   Description :
     Initialise le generateur aleatoire
   Parametre(s) d'entree :
     seed : si 0, utilise /dev/random (ou urandom, ou time_pid)
            sinon utilise seed
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_rand_init(lcrzo_uint32 seed);
/* Nom : lcrzo_xintxx_init_rand
   Description :
     Genere un nombre aleatoire
   Parametre(s) d'entree :
     min : valeur minimale
     max : valeur maximale
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pnumber : alea genere
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_uint32_init_rand(lcrzo_uint32 min,
			   lcrzo_uint32 max,
			   lcrzo_uint32 *pnumber);
int lcrzo_int32_init_rand(lcrzo_int32 min,
			  lcrzo_int32 max,
			  lcrzo_int32 *pnumber);
int lcrzo_uint16_init_rand(lcrzo_uint16 min,
			   lcrzo_uint16 max,
			   lcrzo_uint16 *pnumber);
int lcrzo_int16_init_rand(lcrzo_int16 min,
			  lcrzo_int16 max,
			  lcrzo_int16 *pnumber);
int lcrzo_uint8_init_rand(lcrzo_uint8 min,
			  lcrzo_uint8 max,
			  lcrzo_uint8 *pnumber);
int lcrzo_int8_init_rand(lcrzo_int8 min,
			 lcrzo_int8 max,
			 lcrzo_int8 *pnumber);
int lcrzo_bool_init_rand(lcrzo_bool *pnumber);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_xintxx_init_text
   Description :
     Initialise un entier a partir d'une chaine texte
   Parametre(s) d'entree :
     str : chaine texte
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pnumber : nombre
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_uint32_init_text(lcrzo_conststring str,
			   lcrzo_uint32 *pnumber);
int lcrzo_int32_init_text(lcrzo_conststring str,
			  lcrzo_int32 *pnumber);
int lcrzo_uint16_init_text(lcrzo_conststring str,
			   lcrzo_uint16 *pnumber);
int lcrzo_int16_init_text(lcrzo_conststring str,
			  lcrzo_int16 *pnumber);
int lcrzo_uint8_init_text(lcrzo_conststring str,
			  lcrzo_uint8 *pnumber);
int lcrzo_int8_init_text(lcrzo_conststring str,
			 lcrzo_int8 *pnumber);
int lcrzo_bool_init_text(lcrzo_conststring str,
			 lcrzo_bool *pnumber);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_uint32_init_stdin
   Description :
     Demande a l'utilisateur d'entrer un entier
   Parametre(s) d'entree :
     message : message a afficher avant
     min : valeur minimale
     max : valeur maximale
     defaultnumber : entier par defaut
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pnumber : entier choisi
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_uint32_init_stdin(lcrzo_conststring message,
			    lcrzo_uint32 min,
			    lcrzo_uint32 max,
			    lcrzo_uint32 defaultnumber,
			    lcrzo_uint32 *pnumber);
int lcrzo_int32_init_stdin(lcrzo_conststring message,
			   lcrzo_int32 min,
			   lcrzo_int32 max,
			   lcrzo_int32 defaultnumber,
			   lcrzo_int32 *pnumber);
int lcrzo_uint16_init_stdin(lcrzo_conststring message,
			    lcrzo_uint16 min,
			    lcrzo_uint16 max,
			    lcrzo_uint16 defaultnumber,
			    lcrzo_uint16 *pnumber);
int lcrzo_int16_init_stdin(lcrzo_conststring message,
			   lcrzo_int16 min,
			   lcrzo_int16 max,
			   lcrzo_int16 defaultnumber,
			   lcrzo_int16 *pnumber);
int lcrzo_uint8_init_stdin(lcrzo_conststring message,
			   lcrzo_uint8 min,
			   lcrzo_uint8 max,
			   lcrzo_uint8 defaultnumber,
			   lcrzo_uint8 *pnumber);
int lcrzo_int8_init_stdin(lcrzo_conststring message,
			  lcrzo_int8 min,
			  lcrzo_int8 max,
			  lcrzo_int8 defaultnumber,
			  lcrzo_int8 *pnumber);
int lcrzo_bool_init_stdin(lcrzo_conststring message,
			  lcrzo_bool defaultnumber,
			  lcrzo_bool *pnumber);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_uint32_fprint
   Description :
     Ecrit un lcrzo_uint32.
   Parametre(s) d'entree :
     *pf : FILE ou la fonction doit ecrire
     startstring : chaine a ecrire avant le lcrzo_uint32
     number : lcrzo_uint32 a ecrire
     fmt : format pour l'entier. Par exemple "%d", "%08X", etc.
           Note : le format ne doit pas contenir le 'l' ("%ld").
           Ce 'l' est ajoute automatiquement.
     endstring : chaine a ecrire apres le lcrzo_uint32
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_uint32_fprint(LCRZOFILE *pf,
			lcrzo_conststring startstring,
			lcrzo_uint32 number,
			lcrzo_conststring fmt,
			lcrzo_conststring endstring);
int lcrzo_int32_fprint(LCRZOFILE *pf,
		       lcrzo_conststring startstring,
		       lcrzo_int32 number,
		       lcrzo_conststring fmt,
		       lcrzo_conststring endstring);
int lcrzo_uint16_fprint(LCRZOFILE *pf,
			lcrzo_conststring startstring,
			lcrzo_uint16 number,
			lcrzo_conststring fmt,
			lcrzo_conststring endstring);
int lcrzo_int16_fprint(LCRZOFILE *pf,
		       lcrzo_conststring startstring,
		       lcrzo_int16 number,
		       lcrzo_conststring fmt,
		       lcrzo_conststring endstring);
int lcrzo_uint8_fprint(LCRZOFILE *pf,
		       lcrzo_conststring startstring,
		       lcrzo_uint8 number,
		       lcrzo_conststring fmt,
		       lcrzo_conststring endstring);
int lcrzo_int8_fprint(LCRZOFILE *pf,
		      lcrzo_conststring startstring,
		      lcrzo_int8 number,
		      lcrzo_conststring fmt,
		      lcrzo_conststring endstring);
int lcrzo_bool_fprint(LCRZOFILE *pf,
		      lcrzo_conststring startstring,
		      lcrzo_bool number,
		      lcrzo_conststring endstring);
#define lcrzo_uint32_print(a,b,c,d) lcrzo_uint32_fprint(stdout,a,b,c,d)
#define lcrzo_int32_print(a,b,c,d) lcrzo_int32_fprint(stdout,a,b,c,d)
#define lcrzo_uint16_print(a,b,c,d) lcrzo_uint16_fprint(stdout,a,b,c,d)
#define lcrzo_int16_print(a,b,c,d) lcrzo_int16_fprint(stdout,a,b,c,d)
#define lcrzo_uint8_print(a,b,c,d) lcrzo_uint8_fprint(stdout,a,b,c,d)
#define lcrzo_int8_print(a,b,c,d) lcrzo_int8_fprint(stdout,a,b,c,d)
#define lcrzo_bool_print(a,b,c) lcrzo_bool_fprint(stdout,a,b,c)
/*-------------------------------------------------------------*/
/* Nom : lcrzo_stream_flush
   Description :
     Vide le buffer d'entree
   Parametre(s) d'entree :
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_stream_flush(LCRZOFILE *pstream);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_stdin_press
   Description :
     Demande a l'utilisateur de presser une touche
   Parametre(s) d'entree :
     message : message a afficher avant
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_stdin_press(lcrzo_conststring message);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_stdin_char
   Description :
     Demande a l'utilisateur d'entrer un caractere
   Parametre(s) d'entree :
     message : message a afficher avant
     allowedchar : chaine contenant les caracteres autorises
                   Par exemple : "aAbBrR"
     defaultchar : caractere par defaut
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pchar : caractere choisi
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_stdin_char(lcrzo_conststring message,
		     lcrzo_constdata allowedchar,
		     lcrzo_uint8 defaultchar,
		     lcrzo_uint8 *pchar);
/*-------------------------------------------------------------*/
/* verifie que la valeur d'un lcrzo_bool soit 0 ou 1 */
#define lcrzo_bool_verifbof(i) if((i)!=0&&(i)!=1)return(LCRZO_ERR_PABOOLNOT01)
/*-------------------------------------------------------------*/
/* les defines suivants assurent la conversion entre les
   representations machine et reseau des "short int" et "long int" :
     lcrzo_ntohl : network to host long
     lcrzo_ntohs : network to host short
     lcrzo_htonl : host to network long
     lcrzo_htons : host to network short
*/
#if LCRZODEF_ENDIANLITTLE==1
 /*i386*/
 #define lcrzo_ntohl(x) ((lcrzo_uint32)((((lcrzo_uint32)(x) & 0x000000ffU) << 24) | (((lcrzo_uint32)(x) & 0x0000ff00U) <<  8) | (((lcrzo_uint32)(x) & 0x00ff0000U) >>  8) | (((lcrzo_uint32)(x) & 0xff000000U) >> 24)))
 #define lcrzo_ntohs(x) ((lcrzo_uint16)((((lcrzo_uint16)(x) & 0x00ff) << 8) | (((lcrzo_uint16)(x) & 0xff00) >> 8)))
 #define lcrzo_htonl(x) lcrzo_ntohl(x)
 #define lcrzo_htons(x) lcrzo_ntohs(x)
#elif LCRZODEF_ENDIANBIG==1
 /*68000*/
 #define lcrzo_ntohl(x)        (x)
 #define lcrzo_ntohs(x)        ((lcrzo_uint16)(x))
 #define lcrzo_htonl(x)        (x)
 #define lcrzo_htons(x)        ((lcrzo_uint16)(x))
#else
 #error  "Complete Endian"
 #error  "Completer le cas de Endian"
#endif
/*-------------------------------------------------------------*/
/* Nom : lcrzo_compilparam_check
   Description :
     Verifie les conditions de compilation de la librairie
   Parametre(s) d'entree :
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_compilparam_check(void);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_compilparam_fprint
   Description :
     Obtient les conditions de compilation de la librairie
   Parametre(s) d'entree :
     wantedparameter : parametre voulu
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pparametervalue : valeur de ce parametre
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_compilparam_get(lcrzo_conststring wantedparameter,
		    lcrzo_string *pparametervalue);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_compilparam_fprint
   Description :
     Affiche les conditions de compilation de la librairie
   Parametre(s) d'entree :
     *pf : FILE ou la fonction doit ecrire
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_compilparam_fprint(LCRZOFILE *pf);
#define lcrzo_compilparam_print() lcrzo_compilparam_fprint(stdout)
/*-------------------------------------------------------------*/
#define LCRZO_WINDOWS_SYSTEMVERSION_unknown   0
#define LCRZO_WINDOWS_SYSTEMVERSION_31       31
#define LCRZO_WINDOWS_SYSTEMVERSION_95       95
#define LCRZO_WINDOWS_SYSTEMVERSION_98       98
#define LCRZO_WINDOWS_SYSTEMVERSION_me       99
#define LCRZO_WINDOWS_SYSTEMVERSION_nt350   350
#define LCRZO_WINDOWS_SYSTEMVERSION_nt351   351
#define LCRZO_WINDOWS_SYSTEMVERSION_nt4     400
#define LCRZO_WINDOWS_SYSTEMVERSION_2k     2000
#define LCRZO_WINDOWS_SYSTEMVERSION_xp     2001
#define LCRZO_WINDOWS_SYSTEMVERSION_net    2002
/* Nom : lcrzo_windows_getsystemversion
   Description :
     Obtient le type du systeme.
   Parametre(s) d'entree :
     *psystem : type du systeme (LCRZO_WINDOWS_SYSTEMVERSION_xx)
     *pspmajor : version majeure du service pack
     *pspminor : version mineure du service pack
     *pbuild : build number
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_windows_getsystemversion(lcrzo_uint32 *psystemversion,
				   lcrzo_uint32 *pspmajor,
				   lcrzo_uint32 *pspminor,
				   lcrzo_uint32 *pbuild);

VOIR AUSSI
lcrzo(3), lcrzo_types(3), lcrzo_data(3), lcrzo_string(3), lcrzo_time(3), lcrzo_file(3), lcrzo_address(3), lcrzo_device(3), lcrzo_list(3), lcrzo_process(3), lcrzo_ipc(3), lcrzo_header(3), lcrzo_ipopt(3), lcrzo_tcpopt(3), lcrzo_packet(3), lcrzo_icmp(3), lcrzo_print(3), lcrzo_record(3), lcrzo_conf(3), lcrzo_spoof(3), lcrzo_sniff(3), lcrzo_sock(3), lcrzo_wait(3), lcrzo_global(3), lcrzo_error(3) lcrzo_misc(3),