【问题标题】:Save a file with a absolute path on Linux using libcurl in C++在 C++ 中使用 libcurl 在 Linux 上保存具有绝对路径的文件
【发布时间】:2014-09-19 12:53:48
【问题描述】:

如何从网络服务器下载文件,并将其保存在 Linux 上的特定路径中?

我用过这段代码(这是一个例子):

CURL *curl;
FILE *fp;
CURLcode res;
const char *url = "http://google.com";
char outfilename[FILENAME_MAX] = "\\home\\user_name\\";
curl = curl_easy_init();
if (curl)
{
    fp = fopen(outfilename,"wb");
    curl_easy_setopt(curl, CURLOPT_URL, url);
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL);
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
    res = curl_easy_perform(curl);
    curl_easy_cleanup(curl);
    fclose(fp);
}

但它并不完美,因为它只在工作目录中保存了以他的名字命名的绝对路径的文件!

谁能帮我解决这个问题? 感谢您的关注!

【问题讨论】:

    标签: c++ linux libcurl


    【解决方案1】:

    我想你需要使用正斜杠

    char outfilename[FILENAME_MAX] = "/home/user_name/";
    

    【讨论】:

    • 谢谢!有用!但是如何将文件保存在主目录“/”中? (例如:/text.txt)
    • 通常情况下,不会写入根节点/,因为这需要root 权限。即您需要以root 用户身份运行命令。 (例如sudo ./a.out)
    • 再次感谢!最后一个问题:如何使用变量来指定绝对路径?它告诉我一个错误:数组必须用大括号括起来的初始化程序初始化!
    • 错误是 c++ 编译器错误,请参阅stackoverflow.com/a/4329352/543411。它似乎与原始问题无关。您始终可以针对此问题打开一个新问题。简而言之:很遗憾我不知道。 ;-)
    • 我的荣幸。如果此问题已关闭,您可以投票或接受我的回答。欢呼
    猜你喜欢
    • 2014-11-14
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多