1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
/*
* U s a g e
*
*/
static void Usage ( char *ProgName )
{
fprintf (stderr, "\n For the %s program to run you must include the following parameter :\n",ProgName );
fprintf (stderr, "\n -f filename : input file");
fprintf (stderr, "\n But you may also include the following parameter :\n");
fprintf (stderr, "\n [-O] : optimization flag");
fprintf (stderr, "\n [-V] : gives the software's version.");
fprintf (stderr, "\n [-R directory] : base directory where database is located.");
fprintf (stderr, "\n [%s is the default]",getenv("PWD"));
fprintf (stderr, "\n [-GIF] : formatting image as GIF [the default is not GIF]");
fprintf (stderr, "\n [-freq N] : frequency (in seconds) at which server will watch");
fprintf (stderr, "\n changes in realtime in the DB [60 is the default].");
fprintf (stderr, "\n\n");
}
/*
* C h e c k s _ O p t i o n s
*
*/
static int Checks_Options ( int argc, char **argv )
{
int i, s = SUCCESS ;
for ( i = 1 ; i < argc ; i++ )
{
/* Input file */
if ( strcasecmp(argv[i], "-f") == 0 )
{
if ( i == (argc-1) )
{
Usage(argv[0]);
return ERROR ;
}
FICHIER = argv[i+1] ;
i = i + 1 ;
continue ;
}
/* Version */
if ( strcasecmp(argv[i], "-V") == 0 )
{
fprintf ( stderr, "\n VERSION %d\n",VERSION);
continue ;
}
/* Optimisation */
if ( strcasecmp(argv[i], "-O") == 0 )
{
Optimize = True ;
continue ;
}
/* Checks a directory was set to contain the database */
if ( strcasecmp(argv[i], "-R") == 0 )
{
if ( i == (argc-1) )
{
Usage(argv[0]);
return ERROR ;
}
Repertoire = argv[i+1] ;
i = i + 1 ;
continue ;
}
/* Checks if the GIF flag was set */
if ( strcasecmp(argv[i], "-GIF") == 0 )
{
WITHGIF = True ;
continue ;
}
/* Frequency of dababase checking in seconds */
if ( (strcasecmp(argv[i], "-freq") == 0) ||
((strncmp(argv[i], "-f", 2) == 0) && (argv[i][2] != 'd')) )
{
if ( i == (argc-1) )
{
Usage(argv[0]);
return ERROR ;
}
sscanf ( argv[i+1], "%d", &Frequency );
i = i + 1 ;
continue ;
}
/* Checks if the local debug flag was set */
if ( strcmp(argv[i], "-d") == 0 )
{
DEBUG = True ;
continue ;
}
}
if ( FICHIER == NULL )
s = ERROR ;
return s ;
}
/*
*******************
Programme principal
*******************
*/
int main(int argc, char *argv[])
{
/* Initialisation des variables */
.....
/*
--- Vérifie si on a bien le nombre MINIMUM d'arguments
*/
if ( argc < 3 )
{
Usage(argv[0]);
return EXIT_FAILURE ;
}
/*
--- Vérifie quelles sont les options et aguments
*/
if ( Checks_Options(argc, argv) == ERROR )
{
Usage(argv[0]);
return EXIT_FAILURE ;
}
....
return EXIT_SUCCESS ;
} |
Partager