Go wrapper for zip package which you can link in C.
# go build will create zip.a and zip.h files.
$ go build -buildmode c-archive -o zip.a
#include "zip.h"
// usage: ./a.out my.zip file1 file2 file3 ...
int main(int argc, char *argv[]) {
GoSlice files = { &argv[2], argc - 2, argc };
// ziping...
Zip(argv[1], files);
// unzipping...
Unzip(argv[1]);
return 0;
}
# Compile & Link with zip.a
$ gcc zip.c zip.a -Wl,-no_pie
# Usage
$ ./a.out my.zip file1 file2 file3