示例#1
0
int main(int argc, const char *argv[])
{
    char **envp = environ;
    char *key, *value;
    blobset *bs = blob_new(20, NULL);
    blobcursor bc;
    ub2_t keysize;

    for (;key = *envp; envp++) {
        value = index(key, '=');
        if (!value) {
            fprintf(stderr, "bad env: %s\n", key);
            continue;
        }
        *value++ = 0;
        blob_register(bs, key, strlen(key), value, 0);
    }

    blob_cursor_init(&bc, bs);

    //printf("%s = %s\n", "SHELL", (char*)blob_cursor_get(&bc, "SHELL", 5));

    //if (!blob_cursor_find_first(&bc, "SHELL", 5, (void**)&value))
    //    printf("%s = %s\n", "SHELL", value);

    while (!blob_cursor_next(&bc, (void**)&value, (ub1_t**)&key, &keysize)) {
        printf("%.*s=%s\n", keysize, key, value);
    }

    assert (blob_cursor_next(&bc, (void**)&value, (ub1_t**)&key, &keysize));
    return 0;
}
示例#2
0
static void test_blob_new(void)
{
	int      rc;
	char     a[BUF_SIZE];
	blob_t   *bp;
	uint32_t ms;
	blob_t   *dupbp;
	int32_t  c;

	memset(a, 'a', sizeof(a));

	bp = NULL;
	rc = blob_new(a, sizeof(a)-1, &bp);
	assert(rc == 0 && bp != NULL);
	assert(blob_size(bp) == sizeof(a) - 1);
	ms = blob_memory_size(bp);
	assert(blob_size(bp) == ms);

	rc = blob_init(bp, a, sizeof(a));
	assert(rc != 0);
	assert(blob_size(bp) == sizeof(a) - 1);
	assert(blob_size(bp) == ms);
	assert(ms == blob_memory_size(bp));

	rc = blob_init(bp, a, 1);
	assert(rc == 0);
	assert(blob_size(bp) == 1);
	assert(ms == blob_memory_size(bp));

	dupbp = NULL;
	rc = blob_dup(bp, &dupbp);
	assert(rc == 0 && dupbp != NULL);
	assert(blob_size(dupbp) == 1);
	assert(blob_memory_size(dupbp) == 1);

	c = blob_compare(bp, dupbp);
	assert(c == 0);
	c = blob_compare(dupbp, bp);
	assert(c == 0);

	rc = blob_init(bp, a, sizeof(a));
	assert(rc != 0);
	assert(blob_size(bp) == 1);
	assert(ms == blob_memory_size(bp));

	rc = blob_init(bp, a, sizeof(a)-1);
	assert(rc == 0);
	assert(blob_size(bp) == sizeof(a) - 1);
	assert(blob_size(bp) == ms);
	assert(ms == blob_memory_size(bp));

	c = blob_compare(bp, dupbp);
	assert(c > 0);
	assert(c == blob_size(bp) - blob_size(dupbp));

	c = blob_compare(dupbp, bp);
	assert(c < 0);
	assert(c == blob_size(dupbp) - blob_size(bp));

	blob_free(bp);
	bp = NULL;
	blob_free(dupbp);
	dupbp = NULL;
}