/* * str.c * * Created on: Feb 14, 2011 * Author: lamikr */ #include #include #include #include #include #include char *get_as_hex_str(const char *byte_arr, int byte_count) { int ii; char *ret_val; char item[5]; ret_val = NULL; if ((byte_arr != NULL) && (byte_count > 0)) { ret_val = malloc(5 * byte_count); for (ii = 0; ii < byte_count; ii++) { if (ii == 0) { snprintf(ret_val, 5, "0x%02x", byte_arr[ii]); } else { snprintf(item, 5, "0x%02x", byte_arr[ii]); strcat(ret_val, item); } if (ii < (byte_count - 1)) { strcat(ret_val, " "); } } } return ret_val; } bool parse_long(const char *str, long *result) { int new_result; char *endptr; bool ret_val; ret_val = false; errno = 0; new_result = strtol(str, &endptr, 10); if (errno != 0) { log_error("invalid input %s, could not convert to integer.\n", str); } else { if (endptr == str) { log_error("invalid input %s, could not convert to integer.\n", str); } else { *result = new_result; ret_val = true; } } return ret_val; }