Como POSTAR um buffer de JSON usando libcurl?

tualmente, o meu programa C ++ chama curl através de um pipe popen("curl ...")) para POSTAR um arquivo de dados JSON para um servidor da web. Isso tem limitações óbvias de desempenho devido à necessidade de salvar o JSON em um arquivo e chamar curl em um subshell. Gostaria de reescrevê-lo para usar libcurl, mas não está claro para mim como fazer isso. A linha de comando que passo parapopen() é

curl -s -S -D /dev/null -H "Content-Type: application/json" -X POST -d file-of-json http://server/handler.php

Os dados JSON (cerca de 3K) estão em um buffer na RAM antes que eu precise publicá-los. Eu esperava usar o CURLOPT_READFUNCTION da libcurl para colocar o buffer em libcurl (mas estou aberto a alternativas) e CURLOPT_WRITEFUNCTION para capturar a resposta do servidor, semelhante à forma como li a resposta do pipe pope

Tudo o que parece simples. O que é confuso é qual combinação de CURLOPT_POST, CURLOPT_HTTPPOST, CURLOPT_POSTFIELDS, CURLOPT_HTTPHEADER eu preciso. Eu li muitos posts sobre esse assunto (sem trocadilhos) e nenhum corresponde exatamente ao meu cenário. Alguma sugestão

[Normalmente, não tenho campos de formulário codificados por URL, como este: http: //server/handler.php? I = do & not = use & these = in & my = query]

questionAnswers(4)

yourAnswerToTheQuestion