如何在std::string中保存curl下载? 我知道我可以从C++程序调用系统(“CURL路径LJO”)下载文件并保存在当前目录中,然后我可以使用STL将它保存到一个STD::String。但是有没有办法直接将其保存在std::string中?我知道abot,但我想知道:curl命令中是否有这样的说明符?如果没有,最好的方法是什么?

如何在std::string中保存curl下载? 我知道我可以从C++程序调用系统(“CURL路径LJO”)下载文件并保存在当前目录中,然后我可以使用STL将它保存到一个STD::String。但是有没有办法直接将其保存在std::string中?我知道abot,但我想知道:curl命令中是否有这样的说明符?如果没有,最好的方法是什么?,c++,curl,C++,Curl,您需要在代码中使用库。您可以使用和选项设置回调,将收到的数据直接保存到std::string变量中 libcurl将允许您在不创建单独进程的情况下调用curl,这样您就不必担心进程间的通信。您可以将子进程的输出重定向到管道并从中读取输出。但是,如何做到这一点取决于平台。请参见POSIX系统上的popen或fork/exec,以及Windows上的CreateProcess。在非常有限的系统< /C>函数中,C++标准库中没有任何子进程管理设施。所以我必须使用一个库吗?没有办法只使用OS cmd命

您需要在代码中使用库。您可以使用和选项设置回调,将收到的数据直接保存到
std::string
变量中

libcurl将允许您在不创建单独进程的情况下调用curl,这样您就不必担心进程间的通信。您可以将子进程的输出重定向到管道并从中读取输出。但是,如何做到这一点取决于平台。请参见POSIX系统上的
popen
fork
/
exec
,以及Windows上的
CreateProcess
。在非常有限的<代码>系统< /C>函数中,C++标准库中没有任何子进程管理设施。所以我必须使用一个库吗?没有办法只使用OS cmd命令?@user2000如果需要,可以使用低级套接字编写代码。但是它有点复杂(你也需要学习
HTTP
协议。)@user2000
cmd
命令无法直接写入进程内的变量。但也有一些变通办法,比如迈尔斯提到的。但是
curl.exe
只是
libcurl
库的一个包装器,所以省去中间人,直接使用
libcurl
。当然,您可以直接使用套接字,但是您必须手动实现HTTP协议,这不是一件小事
libcurl
已经完成了艰苦的工作。或者使用许多现成的预先制作的HTTP库中的任意一个。