DLLEXPORT DIR *opendir(const char *name) { DIR *dir; ke_handle dir_handle; dir_handle = dir_open(name); if (KE_INVALID_HANDLE== dir_handle) goto err; /* ´´½¨DIR */ dir = (DIR *)crt_zalloc(sizeof(*dir)); if (NULL == dir) goto err1; dir->dir_handle = dir_handle; dir->dir_buffer = dir_buff_malloc(); if (NULL == dir->dir_buffer) goto err2; dir->total_size = DIR_BUFF_LEN; return dir; err2: crt_free(dir); err1: sys_close(dir_handle); err: return NULL; }
static void XXH_free (void* p) { crt_free(p); }