示例#1
0
static void
test_rb(void) {
    //rbtree *tr = rb_cnew( 0, 0, 0, 0, 0, 0);
    rbtree *tr = rb_new();
    char keybuf[100];
    size_t valuebuf[] = { 1 };
    size_t *vp;
//    while (fscanf(stdin, "%s", keybuf) == 1) {
//        vp = rb_get(tr, keybuf);
//        if (vp)
//            *vp += 1;
//        else
//            rb_add(tr, keybuf, valuebuf);
//    }
//    this is another faster version
    while (fscanf(stdin, "%s", keybuf) == 1) {
        vp = rb_fget(tr, keybuf);
        *vp += 1;
    }
    rb_set(tr, "a", valuebuf);
    *valuebuf = 123456789;
    rb_add(tr, "b", valuebuf);
    *valuebuf = 2;
    rb_set(tr, "c", valuebuf);
    rb_set(tr, "d", valuebuf);
    *valuebuf = 987654321;
    rb_update(tr,"a",valuebuf);
    rb_set(tr, "e", valuebuf);

    rb_print(tr);
    rb_clear(tr);
    rb_clear(tr); //just for test
    rb_free(tr);
}
示例#2
0
文件: readlog.c 项目: bedis/imsd
//main(int argc, char *argv[]) {
int
main(int argc, char *argv[]) {
	int shm_fd = 0, c;
	unsigned long long nb_bytes = 256000;
	char *logs = NULL;
	RINGBUFFER rb;

	opterr = 0;
	while((c = getopt(argc, argv, ARGS)) != -1)
		switch(c) {
			case 'n':
				nb_bytes = atoll(optarg);
				break;
			case '?':
				if (optopt == 'n')
					fprintf(stderr,
							"-%c: missing arguments\n",
							optopt);
				else if (isprint(optopt))
					fprintf(stderr,
							"Unknown option `-%c'.\n",
							optopt);
				else
					fprintf (stderr,
							"Unknown option character `\\x%x'.\n",
							optopt);
				break;
			default:
				break;
		}
	
	if ((shm_fd = open_shm(SHM_PATH)) < 0)
		MANAGE_ERROR("can't create shm", TRUE, EXIT_FAILURE);

	if ((logs = mmap(NULL, nb_bytes, PROT_READ | PROT_WRITE, MAP_SHARED, 
			shm_fd, 0)) == MAP_FAILED)
		MANAGE_ERROR("mmap", TRUE, EXIT_FAILURE);

	rb_connect(&rb, logs, nb_bytes);
	rb_print(&rb);

	//close_shm(shm_fd);

	return EXIT_SUCCESS;
}
示例#3
0
int main(int argc, char *argv[])
{
    struct rb_tree tree;
    rb_init(&tree);
    rb_insert(11,&tree);
    rb_insert(14,&tree);
    rb_insert(2,&tree);
    rb_insert(1,&tree);
    rb_insert(7,&tree);
    rb_insert(5,&tree);
    rb_insert(8,&tree);
    rb_insert(4,&tree);
    rb_insert(11,&tree);
    rb_insert(14,&tree);
    rb_insert(2,&tree);
    rb_insert(1,&tree);
    rb_insert(7,&tree);
    rb_insert(5,&tree);
    rb_insert(8,&tree);
    rb_insert(4,&tree);
    rb_insert(11,&tree);
    rb_insert(14,&tree);
    rb_insert(2,&tree);
    rb_insert(1,&tree);
    rb_insert(7,&tree);
    rb_insert(5,&tree);
    rb_insert(8,&tree);
    rb_insert(4,&tree);
    rb_insert(11,&tree);
    rb_insert(14,&tree);
    rb_insert(2,&tree);
    rb_insert(1,&tree);
    rb_insert(7,&tree);
    rb_insert(5,&tree);
    rb_insert(8,&tree);
    rb_insert(4,&tree);
    rb_insert(11,&tree);
    rb_insert(14,&tree);
    rb_insert(2,&tree);
    rb_insert(1,&tree);
    rb_insert(7,&tree);
    rb_insert(5,&tree);
    rb_insert(8,&tree);
    rb_insert(4,&tree);
    rb_insert(11,&tree);
    rb_insert(14,&tree);
    rb_insert(2,&tree);
    rb_insert(1,&tree);
    rb_insert(7,&tree);
    rb_insert(5,&tree);
    rb_insert(8,&tree);
    rb_insert(4,&tree);
    rb_insert(11,&tree);
    rb_insert(14,&tree);
    rb_insert(2,&tree);
    rb_insert(1,&tree);
    rb_insert(7,&tree);
    rb_insert(5,&tree);
    rb_insert(8,&tree);
    rb_insert(4,&tree);
    rb_insert(11,&tree);
    rb_insert(14,&tree);
    rb_insert(2,&tree);
    rb_insert(1,&tree);
    rb_insert(7,&tree);
    rb_insert(5,&tree);
    rb_insert(8,&tree);
    rb_insert(4,&tree);
    rb_print(&tree);
    rb_free_elements(&tree);
    return 0;
}