Scroll to navigation

LC_RECV(3) Librecast Programmer's Manual LC_RECV(3)


lc_recvtree, lc_recvchunk - receive data over multicast


Librecast library (liblibrecast, -llibrecast)


#include <librecast/sync.h>
ssize_t lc_recvtree(lc_ctx_t *lctx, unsigned char *hash, mtree_t *tree
                    lc_stat_t *stats, lc_sync_options_t *opt, int flags);
ssize_t lc_recvchunk(lc_ctx_t *lctx, unsigned char *hash, void *data, const size_t len
                    lc_stat_t *stats, lc_sync_options_t *opt, int flags);

Compile and link with -llibrecast.


Each of these functions receives data over multicast by joining the librecast channel formed from the supplied hash.

The lc_recvtree function receives the merkle tree structure from channel hash into tree.

The lc_recvchunk function receives a chunk of data of length len (which can be fragmented over several packets) from channel hash, writing it into the memory pointed to by data.

If stats is not NULL, transfer statistics will be returned in this structure.

opt is not used, at present, and must be NULL for compatibility with future versions.

flags is not used, at present, and must be zero for compatibility with future versions.


These calls return the number of bytes received, or -1 if an error occurred. In the event of an error, errno is set to indicate the error.


Invalid argument.

ENOMEM Not enough space/cannot allocate memory (POSIX.1-2001).


lc_ctx_new(3), lc_share(3), lc_sendtree(3), lc_sendchunk(3)

2023-08-02 LIBRECAST