zip_source_win32a, zip_source_win32a_create
create data source from a Windows ANSI file name

libzip (-lzip)

#include <zip.h>

zip_source_t *
zip_source_win32a(zip_t *archive, const char *fname, zip_uint64_t start, zip_int64_t len);

zip_source_t *
zip_source_win32a_create(const char *fname, zip_uint64_t start, zip_int64_t len, zip_error_t *error);

The functions zip_source_win32a() and zip_source_win32a_create() create a zip source on Windows using a Windows ANSI name. They open fname and read len bytes from offset start from it. For a description of the len argument, see zip_source_file(3).

If the file supports seek, the source can be used to open a zip archive from.

The file is opened and read when the data from the source is used, usually by zip_close() or zip_open_from_source().

Upon successful completion, the created source is returned. Otherwise, NULL is returned and the error code in archive or error is set to indicate the error.

zip_source_win32a() and zip_source_win32a_create() fail if:
fname, start, or len are invalid.
Required memory could not be allocated.
Opening fname failed.

libzip(3), zip_file_add(3), zip_file_replace(3), zip_source(3), zip_source_file(3), zip_source_win32handle(3), zip_source_win32w(3)

zip_source_win32a() and zip_source_win32a_create() were added in libzip 1.0.

ZIP_LENGTH_TO_END and ZIP_LENGTH_UNCHECKED were added in libzip 1.10.1.

Dieter Baron <> and Thomas Klausner <>