1.功能介绍
1.1 sftp(安全文件传送协议,默认端口是22),从字面意思看,就是我们常用的文件上传下载协议,实现文件的上传下载功能。
2.如实使用sftp
2.1 网上也有很多封装好的库,也很好用,可以跨平台;今天我分享的是基于Linux系统编程的sftp,不需要下载任何库,拿去直接可用,也写了相应的测试程序可参考。
3.SFTP代码
#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>//sftp使用Linux系统里的头文件
#undef DISABLE_SSH_AGENT
size_t read_callback(void *ptr, size_t size, size_t nmemb, void *stream) //上传回调函数
{
curl_off_t nread;
size_t retcode = fread(ptr, size, nmemb, (FILE*)(stream));
nread = (curl_off_t)retcode;
return retcode;
}
int SftpUpload(const char *pUrlKey, const char *pPathFile, const char *pSftpUrl)
{
CURL *curl;
CURLcode res;
if ((NULL == pUrlKey) || (NULL == pPathFile) || (NULL == pSftpUrl))
{
return -1;
}
FILE* pSendFile = fopen(pPathFile, "rb");