Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
变量文件名和CULLIB_C_Variables_Filenames_Libcurl - Fatal编程技术网

变量文件名和CULLIB

变量文件名和CULLIB,c,variables,filenames,libcurl,C,Variables,Filenames,Libcurl,我想做的是: 我正试图编写一个c程序,从URL下载一个文件并保存在本地。我找到了以下指南,只要我硬编码文件名,它就完全符合我的要求: 我的问题是: 文件每小时更新一次,每个新文件都有日期和时间戳。我可以使用time.h预测所需的文件名,并提取当前的日期和时间信息,但是我不知道如何将这些信息组合成可以传递给curlib命令的表单 当前尝试的解决方案(不起作用): 它创建目标文件,但该文件为空。我怀疑这与char指针和字符串之间的差异有关,但我不确定是什么 有没有关于我做错了什么以及下一步应该尝试

我想做的是:

我正试图编写一个c程序,从URL下载一个文件并保存在本地。我找到了以下指南,只要我硬编码文件名,它就完全符合我的要求:

我的问题是:

文件每小时更新一次,每个新文件都有日期和时间戳。我可以使用time.h预测所需的文件名,并提取当前的日期和时间信息,但是我不知道如何将这些信息组合成可以传递给curlib命令的表单

当前尝试的解决方案(不起作用):

它创建目标文件,但该文件为空。我怀疑这与char指针和字符串之间的差异有关,但我不确定是什么

有没有关于我做错了什么以及下一步应该尝试什么的想法?

您应该在libcurl using程序中使用选项,并检查发送的请求/响应

我的猜测是,不知何故,您只是请求了错误的URL,服务器用404或其他没有实际响应正文内容的东西进行响应


(curl,CURLOPT_URL,URL);您显示的呼叫似乎很好,因为它需要一个以零结尾的字符*,这就是您发送给它的内容。当然,详细的输出还将显示libcurl是否以您期望的方式处理输入。

最后我犯了最愚蠢的错误。我的程序在当地时间运行,但我想下载的图像是基于UTC的。一旦我整理好了,一切都很好。。。
char *url;                       //char pointer to URL
url = malloc((sizeof(char)*51+1);//allocate memory to pointer address is 51 characters + \0 terminator
sprintf(url, "http://>URL Info</FILENAME%.4d%.2d%.2d%.2d30.jpg\0", year, month, date, hour);
                                 //ie http://example.com/files/FILENAME201304071030.jpg
curl_easy_setopt(curl, CURLOPT_URL, url);