示例#1
0
void rb_dump(rb_node_t *root)
{
	rb_node_t *p = NULL;
	p = root;
	if (p != NULL) {
		printf("%4d",p->key);
		rb_dump(p->left);
		rb_dump(p->right);
	}

}
示例#2
0
文件: dumprb.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_dump(&rb);

	//close_shm(shm_fd);

	return EXIT_SUCCESS;
}