在应用程序中使用ftp下载文件

最近在做Linux应用层相关的工作,主要涉及要需要用到ftp来获取最新的固件用于升级。这里简单记录一下:

 

1.ubuntu本身不带ftpget命令,如果要使用ftpget和ftpput等命令需要先建立软链接!!!!

ln -s /bin/busybox ftpget

2.使用ftpget下载文件

/*
    username    :    ftp的用户名
    password    :    ftp的用户名密码
    127.0.0.1   :   填入ftp服务器的ip
    localfile   :    存放本地的文件名
    remotefile  :    ftp服务器的文件名
*/
ftpget -u username -p password 127.0.0.1 localfile remotefile

3.使用ftpput 上传文件

/*
    username            :    ftp的用户名
    password            :    ftp的用户名密码
    127.0.0.1           :   填入ftp服务器的ip
    local_upload_file   :    上传的文件名
*/
ftpput -u username -p password 127.0.0.1 local_upload_file

4.测试软代码如下:

首先先在该目录下执行ln -s /bin/busybox ftpget 指令,执行该指令后,我们会发现当前的文件夹中会出现一个ftpget的可执行程序

接下来就是编写代码了,代码如下所示

ftp_test.c

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/stat.h>

//以下定义根据自己的ftp服务器信息填写
#define FTP_USERNAME        "test" 
#define FTP_PASSWORD        "test"
#define FTP_SERVER_IP       "127.0.0.1"
#define LOCAL_FILE_NAME     "t.txt"//
#define REMOTE_FILE_NAME    "/test/test.txt"


int ftp_down_file( char *username, char *password, char *ftp_server_ip,char *local_file, char *remote_file)
{
    char tmp[256]={0};
    sprintf(tmp, "./ftpget -u %s -p %s %s %s %s", username, password, ftp_server_ip, local_file, remote_file);
    system(tmp);
    return 0;
}

int main(int argc,char *argv[])
{
    //将远程“/test/test.txt”的文件下载下来,存在当前文件夹,并命名为t.txt
    system("ls -l");
    ftp_down_file(FTP_USERNAME,FTP_PASSWORD,FTP_SERVER_IP,LOCAL_FILE_NAME,REMOTE_FILE_NAME);
    system("ls -l");
    return 0;
}

程序执行如下图所示:t.txt即是我们从远程服务器上下载下来的文件。

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值