hbase.c 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. #include "hbase.h"
  2. #include <assert.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. unsigned int g_alloc_cnt = 0;
  6. unsigned int g_free_cnt = 0;
  7. void* safe_malloc(size_t size) {
  8. ++g_alloc_cnt;
  9. void* ptr = malloc(size);
  10. if (!ptr) {
  11. fprintf(stderr, "malloc failed!\n");
  12. exit(-1);
  13. }
  14. return ptr;
  15. }
  16. void* safe_realloc(void* oldptr, size_t size) {
  17. ++g_alloc_cnt;
  18. ++g_free_cnt;
  19. void* ptr = realloc(oldptr, size);
  20. if (!ptr) {
  21. fprintf(stderr, "realloc failed!\n");
  22. exit(-1);
  23. }
  24. if (!ptr) {
  25. }
  26. return ptr;
  27. }
  28. void* safe_calloc(size_t nmemb, size_t size) {
  29. ++g_alloc_cnt;
  30. void* ptr = calloc(nmemb, size);
  31. if (!ptr) {
  32. fprintf(stderr, "calloc failed!\n");
  33. exit(-1);
  34. }
  35. return ptr;
  36. }
  37. void* safe_zalloc(size_t size) {
  38. ++g_alloc_cnt;
  39. void* ptr = malloc(size);
  40. if (!ptr) {
  41. fprintf(stderr, "malloc failed!\n");
  42. exit(-1);
  43. }
  44. memset(ptr, 0, size);
  45. return ptr;
  46. }
  47. char* strupper(char* str) {
  48. char* p = str;
  49. while (*p != '\0') {
  50. if (*p >= 'a' && *p <= 'z') {
  51. *p &= ~0x20;
  52. }
  53. ++p;
  54. }
  55. return str;
  56. }
  57. char* strlower(char* str) {
  58. char* p = str;
  59. while (*p != '\0') {
  60. if (*p >= 'A' && *p <= 'Z') {
  61. *p |= 0x20;
  62. }
  63. ++p;
  64. }
  65. return str;
  66. }
  67. char* strreverse(char* str) {
  68. if (str == NULL) return NULL;
  69. char* b = str;
  70. char* e = str;
  71. while(*e) {++e;}
  72. --e;
  73. char tmp;
  74. while (e > b) {
  75. tmp = *e;
  76. *e = *b;
  77. *b = tmp;
  78. --e;
  79. ++b;
  80. }
  81. return str;
  82. }
  83. // n = sizeof(dest_buf)
  84. char* safe_strncpy(char* dest, const char* src, size_t n) {
  85. assert(dest != NULL && src != NULL);
  86. char* ret = dest;
  87. while (*src != '\0' && --n > 0) {
  88. *dest++ = *src++;
  89. }
  90. return ret;
  91. }
  92. // n = sizeof(dest_buf)
  93. char* safe_strncat(char* dest, const char* src, size_t n) {
  94. assert(dest != NULL && src != NULL);
  95. char* ret = dest;
  96. while (*dest) {++dest;--n;}
  97. while (*src != '\0' && --n > 0) {
  98. *dest++ = *src++;
  99. }
  100. return ret;
  101. }