をスレッドに渡し、私はに取り組んでいますマングースWebサーバのHTTPイベントハンドラからCの抜粋です:のmallocマングースWebサーバーのHTTP POST本体と下記の
static void HttpEventHandler(struct mg_connection *nc, int ev, void *ev_data) {
if (ev == MG_EV_HTTP_REQUEST) {
struct http_message *hm = (struct http_message *) ev_data;
if (mg_vcmp(&hm->method, "POST") == 0) {
pthread_t thread_id;
int rc;
rc = pthread_create(&thread_id, NULL, thr_func, /* Here I want hm body to be passed after its malloced */);
if (rc) { /* could not create thread */
fprintf(stderr, "error: pthread_create, rc: %d\n", rc);
return EXIT_FAILURE;
}
}//if POST
mg_printf(nc, "HTTP/1.1 200 OK\r\n");
nc->flags |= MG_F_SEND_AND_CLOSE;
}
}
文字列としてアクセスHTTP POSTメッセージのボディ、構文の下に使用して:
"%.*s", (int) hm->body.len,hm->body.p
私はコードサンプルがHM->体をmallocと上記のスニペット内のスレッドにそれを渡したい、また*渡された空間をキャストする方法を説明するために素晴らしいことです。その難しい場合は、malloc ev_dataまたはhmをしてください。
文字列をパラメータとして 'thr_func'に渡したいとしますか? – yano
はい、体の内容がjsonなので十分です。 –