detect(3) Library Functions Manual detect(3) NAME detect, detect_r - Detecting character set and measuring accuracy of charset SYNOPSIS #include short detect (char * inbuf, DetectObj ** outbuf); short detect_r (char * inbuf, size_t inlen, DetectObj ** outbuf); DESCRIPTION Storing charset and accuracy of inbuf to outbuf The detect API is deprecated becase this api is not binary safe. Use or replace to detect_r api. Arguments: inbuf input string for detecting inlen length of input string for detecting outbuf Stroing inforamtion of inbuf. The structure of outbuf is follows. typedef struct DetectObject { char * encoding; float confidence; } DetectObj; The outbuf variable is must initialized by detect_obj_init API before calling this detect api. RETURN VALUE Returns following condition as case by case. CHARDET_SUCCESS Detecting success CHARDET_NO_RESULT Detection failure CHARDET_NULL_OBJECT Don't initializing outbuf with chardet_obj_init CHARDET_OUT_OF_MEMORY Occuring out of memory at internal API EXAMPLE #include int main (void) { DetectObj *obj; char * checkstr = ""; if ( (obj = detect_obj_init ()) == NULL ) { fprintf (stderr, "Memory Allocation failed\n"); return CHARDET_MEM_ALLOCATED_FAIL; } //switch (detect (checkstr, &obj)) switch (detect_r (checkstr, strlen (checkstr), &obj)) { case CHARDET_OUT_OF_MEMORY : fprintf (stderr, "On handle processing, occured out of memory\n"); detect_obj_free (&obj); return CHARDET_OUT_OF_MEMORY; case CHARDET_NULL_OBJECT : fprintf (stderr, "2st argument of chardet() is must memory allocation " "with detect_obj_init API\n"); return CHARDET_NULL_OBJECT; } # check support obj->bom with CHARDET_BOM_CHECK constant printf ("encoding: %s, confidence: %f, exists bom: %d\n", obj->encoding, obj->confidence, obj->bom); detect_obj_free (&obj); return 0; } AUTHORS JoungKyun.Kim BUG REPORTS Use QnA board on https://github.com/Joungkyun/libchardet/issues SEE ALSO detect_handledata(3), detect_obj_init(3), detect_obj_free(3) libchardet manuals 2019-08-01 detect(3)