1.ftplib源码下载地址
http://nbpfaus.net/~pfau/ftplib/
2.解压,编译
tarxvf ftplib-4.0.tar.gz
cdftplib-4.0/src
make
生成了 libftp.a libftp.so libftp.so.4 libftp.so.4.0 qftp qftp.static
其中我们编程只需用到libftp.a和ftplib.h文件
3.函数使用介绍
<1>其它功能
void FtpInit() –初始化库
int FtpSite(const char *cmd, netbuf *nControl) –发送网站命令
char *FtpLastResponse(netbuf *nControl) –找回上回响应
int FtpSysType(char *buf, int max, netbuf *nControl) –确定远程系统的类型
int FtpSize(char *path, unsigned int *size, char mode, netbuf *nControl) –确定远程文件大小
int FtpSizeLong(char *path, unsigned long long *size, char mode, netbuf*nControl) –确定远程文件大小
int FtpModDate(char *path, char *buf, int max, netbuf *nControl) –确定文件的修改时间
int FtpSetCallback(FtpCallbackOptions *opt, netbuf *nControl) –创建一个回调函数
int FtpClearCallback(netbuf *nControl) –删除回调函数
<2>服务连接
int FtpConnect(const char *host, netbuf **nControl) –连接到远程服务器
int FtpLogin(const char *user, const char *pass, netbuf *nControl) –登陆到远程机器
void FtpQuit(netbuf *nControl) –退出远程服务器
int FtpOptions(int opt, long val, netbuf *nControl) –设置连接选项
<3>目录功能
int FtpChdir(const char *path, netbuf *nControl) –改变工作目录
int FtpMkdir(const char *path, netbuf *nControl) –创建目录
int FtpRmdir(const char *path, netbuf *nControl) –删除目录
int FtpDir(const char *outputfile, const char *path, netbuf *nControl) –列出远程目录
int FtpNlst(const char *output, const char *path, netbuf *nControl) –列出远程目录
int FtpCDUp(netbuf *nControl) –改变父目录
int FtpPwd(char *path, int max, netbuf *nControl) –查看当前工作目录
<4>文件到文件传输
int FtpGet(const char *output, const char *path, char mode, netbuf*nControl) –获取远程文件
int FtpPut(const char *input, const char *path, char mode, netbuf*nControl) –发送本地文件到远程
int FtpDelete(const char *fnm, netbuf *nControl) –删除远程文件
int FtpRename(const char *src, const char *dst, netbuf *nControl) –重命名远程文件
<5>文件到程序传输
int FtpAccess(const char *path, int typ, int mode, netbuf *nControl,netbuf **nData) –打开远程文件或目录
int FtpRead(void *buf, int max, netbuf *nData) –读取远程文件或目录
int FtpWrite(void *buf, int len, netbuf *nData) –写入远程文件
int FtpClose(netbuf *nData) –关闭数据连接
返回值:1是成功,0是失败
示例1:
将本地文件上传到远程服务器
ftpClient.c
#include
#include “ftplib.h”
int main()
{
netbuf *ctrl;
int ret = 0;
//初始化
FtpInit();
//连接远程的服务器
ret = FtpConnect(“192.168.20.212:21”, &ctrl);
if(ret == 1 ) {
printf(“Ftp Connect Server sucessful\n”);
} else {
printf(“Ftp Connect Server Failed\n”);
return -1;
}
//连接方式设置
ret = FtpOptions(FTPLIB_CONNMODE,FTPLIB_PASSIVE,conn);
//ret = FtpOptions(FTPLIB_CONNMODE,FTPLIB_PORT,conn);
//登陆服务器
ret = FtpLogin(“admin”, “admin”, ctrl);
if(ret == 1){
printf(“FtpLogin Serversucessful\n”);
} else {
printf(“FtpLogin Server Failed\n”);
return -1;
}
//上传文件到远程服务器
ret = FtpPut(“ftpClient.c”, “ftpClient.c”, 'I', ctrl);
if(ret == 1){
printf(“FtpPut File sucessful\n”);
} else {
printf(“FtpPut File Failed: %s\n”FtpLastResponse(conn));
return -1;
}
//退出服务器
FtpQuit(ctrl);
return 0;
}
参考文件http://nbpfaus.net/~pfau/ftplib/ftplib.html