curl_multi_add_handle(). One easy handle for each transfer you want to perform.
curl_multi_remove_handlecall. Typically though, you remove a handle only after its transfer is completed.
curl_multi_socket_action()and passing in the affected socket and an associated bitmask specifying which socket activity that was registered:
curl_multi_socket_actionholds the number of current transfers not completed. When that number reaches zero, we know there are no transfers going on.
curl_multi_info_read()will return info about the specific transfers that completed.