ZDIR_PATCH(3)
π zdir_patch β the manual, but make it make sense π
okay so bestie, welcome to zdir_patch(3), straight outta the CZMQ Manual. it's a whole class for working with directory patches, and honestly? it's giving tiny-but-powerful. let's get into it π¦
β¨ NAME β¨
zdir_patch β the class that handles working with directory patches π
πΈ SYNOPSIS πΈ
first things first, this is a stable class, and it may not change except for emergencies. periodt. π
// This is a stable class, and may not change except for emergencies. It
// is provided in stable builds.
#define ZDIR_PATCH_CREATE 1 // Creates a new file
#define ZDIR_PATCH_DELETE 2 // Delete a file
the two ops you can use, right there. ZDIR_PATCH_CREATE = 1 (creates a new file), ZDIR_PATCH_DELETE = 2 (deletes a file). iconic duo fr fr π
now the functions:
// Create new patch
CZMQ_EXPORT zdir_patch_t *
zdir_patch_new (const char *path, zfile_t *file, int op, const char *alias);
// Destroy a patch
CZMQ_EXPORT void
zdir_patch_destroy (zdir_patch_t **self_p);
// Create copy of a patch. If the patch is null, or memory was exhausted,
// returns null.
// Caller owns return value and must destroy it when done.
CZMQ_EXPORT zdir_patch_t *
zdir_patch_dup (zdir_patch_t *self);
// Return patch file directory path
CZMQ_EXPORT const char *
zdir_patch_path (zdir_patch_t *self);
// Return patch file item
CZMQ_EXPORT zfile_t *
zdir_patch_file (zdir_patch_t *self);
// Return operation
CZMQ_EXPORT int
zdir_patch_op (zdir_patch_t *self);
// Return patch virtual file path
CZMQ_EXPORT const char *
zdir_patch_vpath (zdir_patch_t *self);
// Calculate hash digest for file (create only)
CZMQ_EXPORT void
zdir_patch_digest_set (zdir_patch_t *self);
// Return hash digest for patch file
CZMQ_EXPORT const char *
zdir_patch_digest (zdir_patch_t *self);
// Self test of this class.
CZMQ_EXPORT void
zdir_patch_test (bool verbose);
// Please add '@interface' section in './../src/zdir_patch.c'.
heads up bestie: that last line literally says Please add '@interface' section in './../src/zdir_patch.c'. β it's a little note to whoever's maintaining the source, not a function you call. just so we're clear π
π«Ά DESCRIPTION π«Ά
okay so the zdir_patch class works with one patch, which says "create this file" or "delete this file" (referring to a zfile item each time). that's the whole vibe. one patch, one job, no drama π
and then, direct from the source:
Please add@discusssection in./../src/zdir_patch.c.
(yes girl, we're keeping that in. the manpage said it, so it stays β¨)
π EXAMPLE π
this one's straight from the zdir_patch_test method, so it's the real thing, no cap:
const char *SELFTEST_DIR_RW = "src/selftest-rw";
const char *testfile = "bilbo";
const char *prefix = "/";
char *prefixed_testfile = zsys_sprintf ("%s%s", prefix, testfile);
assert (prefixed_testfile);
// Make sure old aborted tests do not hinder us
zsys_file_delete (prefixed_testfile);
zfile_t *file = zfile_new (SELFTEST_DIR_RW, testfile);
assert (file);
zdir_patch_t *patch = zdir_patch_new (SELFTEST_DIR_RW, file, patch_create, prefix);
assert (patch);
zfile_destroy (&file);
file = zdir_patch_file (patch);
assert (file);
assert (streq (zfile_filename (file, SELFTEST_DIR_RW), testfile));
assert (streq (zdir_patch_vpath (patch), prefixed_testfile));
zdir_patch_destroy (&patch);
zstr_free (&prefixed_testfile);
#if defined (__WINDOWS__)
zsys_shutdown();
#endif
look at "bilbo" being the test file name π main character energy for real. and yes, zdir_patch_new gets called with patch_create right there in the example β that's the literal token, we're keeping it exactly as written π
π AUTHORS π
the czmq manual was written by the authors in the AUTHORS file. periodt.
π RESOURCES π
main web site:
report bugs to the email <zeromq-dev@lists.zeromq.org[1]>
π COPYRIGHT π
Copyright (c) the Contributors as noted in the AUTHORS file. This file is part of CZMQ, the high-level C binding for 0MQ: http://czmq.zeromq.org. This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. LICENSE included with the czmq distribution.
β NOTES β
- zeromq-dev@lists.zeromq.org mailto:zeromq-dev@lists.zeromq.org
and that's the whole page bestie!! π¦ this was CZMQ 4.2.1, dated 01/16/2026, and it's ZDIR_PATCH(3) if you ever need to find it again. slay, go patch some directories π
β¨π
π¦ where this page comes from
- fedora 44: czmq-devel 4.2.1-24.fc44 Β· MPL-2.0
- fedora 44: czmq-devel 4.2.1-24.fc44 Β· MPL-2.0
- ubuntu resolute: libczmq-dev 4.2.1-3build1 Β· MPL-2.0
- ubuntu stonking: libczmq-dev 4.2.1-3build1 Β· MPL-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms