linux上,用c++代码实现ftp上传和下载
时间: 2024-06-10 16:05:39 浏览: 174
可以使用C语言中的libcurl库来实现FTP上传和下载。以下是一个简单的示例代码:
```
#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
FILE *fp;
char *url = "ftp://example.com/file.txt";
char *userpwd = "username:password"; // FTP登录账号和密码
char *local_file = "/path/to/local_file"; // 本地文件路径
char *remote_file = "/path/to/remote_file"; // 远程文件路径
/* 初始化libcurl */
curl = curl_easy_init();
if(curl)
{
/* 设置FTP登录账号和密码 */
curl_easy_setopt(curl, CURLOPT_USERPWD, userpwd);
/* 上传文件 */
fp = fopen(local_file, "rb");
if(fp)
{
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_READDATA, fp);
curl_easy_setopt(curl, CURLOPT_INFILESIZE, -1L);
res = curl_easy_perform(curl);
fclose(fp);
if(res != CURLE_OK)
fprintf(stderr, "上传失败: %s\n", curl_easy_strerror(res));
}
else
{
fprintf(stderr, "打开文件失败: %s\n", local_file);
}
/* 下载文件 */
fp = fopen(local_file, "wb");
if(fp)
{
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);
fclose(fp);
if(res != CURLE_OK)
fprintf(stderr, "下载失败: %s\n", curl_easy_strerror(res));
}
else
{
fprintf(stderr, "创建文件失败: %s\n", local_file);
}
/* 清理资源 */
curl_easy_cleanup(curl);
}
return 0;
}
```
需要注意的是,使用该代码需要先安装libcurl库。对于Ubuntu操作系统可以使用以下命令进行安装:
```
sudo apt-get install libcurl4-openssl-dev
```
阅读全文