int main(int argc, char *argv[]) { int optch; extern int opterr; char format[] = "hvctruxfzdsm"; opterr = 1; while ((optch = getopt(argc, argv, format)) != -1) switch (optch) { case 'h': printf ("Aide :\n"); printf ("Utilisation : tar [OPTION...] [FICHIER]...\n"); break; case 'v': printf ("ParamÚtre v recontré : mode verbose\n"); break; case 'c': printf ("ParamÚtre c recontré : créer une archive à partir d'une liste de fichiers (et de répertoires)\n"); // VOIR OPP2 break; case 't': lister(argv[2]); break; case 'r': printf ("ParamÚtre r recontré : ajouter de nouveaux fichiers (ou repertoires) à une archive existante\n"); break; case 'u': printf ("ParamÚtre u recontré : pour mettre à jour l'archive si les fichiers listés sont plus récents que ceux archivés\n"); break; case 'x': break; case 'f': printf("Nom du fichier: %s\n", argv[2]); break; case 'z': compresser(argv[2]); break; case 'd': printf ("ParamÚtre d recontré : pour supprimer un fichier d'une archive\n"); break; case 's': printf ("ParamÚtre s recontré\nAvec 'parse' : pour économiser de la place pour stocker les fichier contenant beaucoup de zéros consécutifs (sparse file)"); break; case 'm': printf ("ParamÚtre m recontré : pour afficher les différences entre les fichiers archivés et les fichiers existants en utilisant la commande Unix 'diff'\n"); break; } return 0; }
int main(int argc, char *argv[]) { int optch; extern int opterr; char format[] = "hvctruxfzdsm"; bool verbose = false; opterr = 1; //boucle qui traite les options while ((optch = getopt(argc, argv, format)) != -1) switch (optch) { case 'h': printf ("Aide :\n"); printf ("Lister : taar -t fichierTAR\n"); printf ("Extraire : taar -x fichierTAR cheminDeSortie\n"); printf ("Compresser : taar -z fichierTAR\n"); break; case 'v': printf ("Paramètre v recontré : mode verbose\n"); verbose = true; break; case 'c': printf ("Paramètre c recontré : creer une archive à partir d'une liste de fichiers (et de repertoires)\n"); printf ("Non implémenté\n"); break; case 't': printf ("Paramètre t recontré : lister les fichiers (et repertoires) contenus dans une archive\n"); lister(argv[2]); break; case 'r': printf ("Paramètre r recontré : ajouter de nouveaux fichiers (ou repertoires) à une archive existante\n"); printf ("Non implémenté\n"); break; case 'u': printf ("Paramètre u recontré : pour mettre à jour l'archive si les fichiers listes sont plus recents que ceux archives\n"); printf ("Non implémenté\n"); break; case 'x': printf ("Paramètre x recontré : pour extraire les fichiers de l'archive\n"); extraire(argv[2], argv[3]); break; case 'f': printf ("Paramètre f recontré : pour indiquer le nom du fichier archive, sinon tar utilise l'entree et la sortie standard avec les options precedentes\n"); break; case 'z': printf ("Paramètre z recontré : pour compresser le fichier d'archive (en utilisant gzip)\n"); compresser(argv[2]); break; case 'd': printf ("Paramètre d recontré : pour supprimer un fichier d'une archive\n"); printf ("Non implémenté\n"); break; case 's': printf ("Paramètre s recontré\nAvec 'parse' : pour economiser de la place pour stocker les fichier contenant beaucoup de zeros consecutifs (sparse file)"); printf ("Non implémenté\n"); break; case 'm': printf ("Paramètre m recontré : pour afficher les differences entre les fichiers archives et les fichiers existants en utilisant la commande Unix 'diff'\n"); printf ("Non implémenté\n"); break; } }
int main (int argc, char * argv[]) { t_ptr_arbre dictionnaire = NULL; unsigned int choix = 1; char fichier_entree[256], fichier_sortie[256]; double temps_debut = 0.0, temps_fin = 0.0; printf ("\n\n"); printf (" ---------- Compression et Decompression LZW ---------------\n\n"); if (argc == 2 && strcmp ("h", argv[1]) == 0) { printf ("\n\n"); printf (" lzw <c|d|h> <fichier_d_entree> <fichier_de_sortie>\n"); printf (" \tc : compression\n"); printf (" \td : decompression\n"); printf (" \th : affichage de l'aide\n"); printf (" \tfichier_d_entree : nom du fichier d'entree\n"); printf (" \tfichier_de_sortie : nom du fichier de sortie\n"); printf ("\n\n"); return EXIT_SUCCESS; } else if (argc == 4) { if (strcmp ("c", argv[1]) == 0) { printf ("COMPRESSION\n"); temps_debut = (double)clock (); dictionnaire = initialiser_dictionnaire (); ouvrir_fichier_entree (argv[2], 0); ouvrir_fichier_sortie (argv[3], 1); compresser (dictionnaire); temps_fin = (double)clock (); afficher_statistiques (1, temps_debut, temps_fin); fermer_fichiers (); detruire_dictionnaire (dictionnaire); } else if (strcmp ("d", argv[1]) == 0) { printf ("DECOMPRESSION\n"); temps_debut = (double)clock (); dictionnaire = initialiser_dictionnaire (); ouvrir_fichier_entree (argv[2], 1); ouvrir_fichier_sortie (argv[3], 0); decompresser (dictionnaire); temps_fin = (double)clock (); afficher_statistiques (0, temps_debut, temps_fin); fermer_fichiers (); detruire_dictionnaire (dictionnaire); } printf ("\n\n"); return EXIT_SUCCESS; } /* Menu si aucun argument n'a ete donne en ligne de commande */ while (choix != 0) { printf ("\n\n"); printf (" \t1 - Compresser un fichier (fichier texte)\n"); printf (" \t2 - Decompresser un fichier (fichier binaire)\n"); printf (" \t3 - Affichage du dernier dictionnaire utilise\n"); printf (" \t0 - Quitter le programme\n"); printf (" Votre choix : "); scanf ("%d", &choix); fgets (fichier_entree, 256, stdin); /* Recupere le caractere \n lu apres le choix */ printf ("\n"); switch (choix) { case 1 : printf ("COMPRESSION\n"); if (dictionnaire != NULL) detruire_dictionnaire (dictionnaire); temps_debut = (double)clock (); dictionnaire = initialiser_dictionnaire (); demander_nom_fichiers (fichier_entree, fichier_sortie); ouvrir_fichier_entree (fichier_entree, 0); ouvrir_fichier_sortie (fichier_sortie, 1); compresser (dictionnaire); temps_fin = (double)clock (); afficher_statistiques (1, temps_debut, temps_fin); fermer_fichiers (); break; case 2 : printf ("DECOMPRESSION\n"); if (dictionnaire != NULL) detruire_dictionnaire (dictionnaire); temps_debut = (double)clock (); dictionnaire = initialiser_dictionnaire (); demander_nom_fichiers (fichier_entree, fichier_sortie); ouvrir_fichier_entree (fichier_entree, 1); ouvrir_fichier_sortie (fichier_sortie, 0); decompresser (dictionnaire); temps_fin = (double)clock (); afficher_statistiques (0, temps_debut, temps_fin); fermer_fichiers (); break; case 3 : printf ("AFFICHAGE DU DICTIONNAIRE\n"); if (dictionnaire != NULL) afficher_dictionnaire (dictionnaire, 0); break; default : choix = 0; break; } } printf ("\n"); return EXIT_SUCCESS; }