We changed error message functions: err_msg_002 -> err_msg_006. We could print it well. --- start function: array_count: start function: array_count: start function: array_count: start function: array_count: start function: array_count: start function: array_count: start function: array_count: start function: array_count: start function: array_count: start function: array_count: start function: array_count: start function: array_count: start function: array_count: start function: array_count: start function: array_count: --- // // // // // void err_msg_006(const char *fmt, ...) { va_list ap; int argc; char** argv; int send_success; char* result; if ( set_level_error_msg <= level_error_msg ) return; va_start(ap, fmt); result = err_doit_002(0, 0, fmt, ap); va_end(ap); if ( print_socket_msg != 1 ) return; argc = 3; argv = (char**) malloc( sizeof(char**) * argc ) ; set_sender_default_parameters ( &argc, argv ) ; argv[2] = (char *) result; send_success = sender_main ( argc, argv ) ; } // // // // // char* err_msg_002(const char *fmt, ...) { static char* result; static va_list ap; Sleep(1000); if ( set_level_error_msg <= level_error_msg ) return NULL; va_start(ap, fmt); result = err_doit_001(0, 0, fmt, ap); va_end(ap); return result; }