Linux系统下SFTP上传下载实现

这篇博客介绍了如何在Linux环境下使用C语言实现SFTP功能,无需额外库,提供了测试程序,编译时需要链接curl库。
摘要由CSDN通过智能技术生成

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");
	
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值