Section courante

A propos

Section administrative du site

zip_open

ZIP : Ouvrir
libzip

Syntaxe

zip_t * zip_open(const char *path, int flags, int *errorp);

Retour

Une fois l'opération terminée avec succès, zip_open() et zip_open_from_source() renvoient un pointeur struct zip. Sinon, NULL est renvoyé et zip_open() définit *errorp pour indiquer l'erreur, tandis que zip_open_from(source) définit ze pour indiquer l'erreur.

Description

Cette fonction permet d'ouvrir une archive ZIP.

Remarques

Erreurs

L'archive spécifiée par path est ouverte sauf si :

Constante Description
ZIP_ER_EXISTS Le fichier spécifié par path existe et ZIP_EXCL est défini.
ZIP_ER_INCONS Des incohérences ont été trouvées dans le fichier spécifié par path. Cette erreur est souvent causée par la spécification de ZIP_CHECKCONS mais peut également se produire sans elle.
ZIP_ER_INVAL Le paramètre du chemin est NULL.
ZIP_ER_MEMORY La mémoire requise n'a pas pu être allouée.
ZIP_ER_NOENT Le fichier spécifié par path n'existe pas et ZIP_CREATE n'est pas défini.
ZIP_ER_NOZIP Le fichier spécifié par path n'est pas une archive zip.
ZIP_ER_OPEN Le fichier spécifié par path n'a pas pu être ouvert.
ZIP_ER_READ Une erreur de lecture s'est produite ; voir errno pour plus de détails.
ZIP_ER_SEEK Le fichier spécifié par path n'autorise pas les recherches.

Pour les archives nouvellement créées, zip_open() n'essaie pas de créer le fichier ; cela est fait lors de l'appel de zip_close() et toutes les erreurs, comme les autorisations d'écriture manquantes, seront alors signalées.

Historique

zip_open() et zip_open_from_source() ont été ajoutés dans libzip 1.0.

Exemple

Voici un exemple de la manière dont vous pouvez signaler des erreurs lors de zip_open :

  1. zip_t *za;
  2. int err;
  3.  
  4. if ((za = zip_open(name, 0, &err)) == NULL) {
  5.     zip_error_t error;
  6.     zip_error_init_with_code(&error, err);
  7.     fprintf(stderr, "%s: impossible d'ouvrir l'archive zip '%s': %s\n", progname, name, zip_error_strerror(&error));
  8.     zip_error_fini(&error);
  9.     return -1;
  10. }

Voir également

libzip(), zip_close(), zip_error_strerror(), zip_fdopen()



Dernière mise à jour : Mercredi, le 5 Février 2025