高手+热心的人请进!!! 我朋友的机器没装sybase请看http://www.csdn.net/expert/topic/168/168642.shtm 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /**************************************************************** Author : leechie ** Date : 2001/06/22 ** Email : [email protected] ** Descriptions : This is the FTP application use FTP API *****************************************************************/#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/fcntl.h>#include <dirent.h>#include <net/libftp.h>#define NORMAL 0#define ABNORMAL 1#define ON 1#define OFF 0char DownLoadDir[256];char UpLoadDir[256];char HostName[256];char UserName[256];char PassWord[256];FTPINFO ftpinfo;void check_n_close();char *ScanStr(char *sstr,char *dstr);char *PraseFile(char *filename);char *readline(int fd);int dirfun(char *dirname,int fd1,int fd2);char *GetConfig(char *InVal);int PutFile();int MkDir();int main(int argc,char *argv[]){ int fd1,fd2; strcpy(DownLoadDir,GetConfig("DownLoadDir")); strcpy(UpLoadDir,GetConfig("UpLoadDir")); strcpy(HostName,GetConfig("HostName")); strcpy(UserName,GetConfig("UserName")); strcpy(PassWord,GetConfig("PassWord")); ftpinfo.debug = ON; ftpinfo.transf_calc = ON; ftpinfo.linger = OFF; printf("%s\t%s\t%s\t%s\n",DownLoadDir,UpLoadDir,HostName,UserName,PassWord); unlink("/tmp/myftpfile.tmp"); unlink("/tmp/myftpdir.tmp"); fd1=open("/tmp/myftpfile.tmp",O_RDWR|O_CREAT|O_EXCL,0666); if(fd1<0) { perror("Open"); exit(1); } fd2=open("/tmp/myftpdir.tmp",O_RDWR|O_CREAT|O_EXCL,0666); if(fd2<0) { perror("Open"); exit(1); } dirfun(DownLoadDir,fd1,fd2); close(fd1); close(fd2); MkDir(); PutFile(); exit(0);}char *GetConfig(char *InVal){ char *tmpbuf; char workbuf[256]; if((tmpbuf=getenv(InVal))==NULL) { fprintf(stderr,"[%s]\t>",InVal); gets(workbuf); tmpbuf=&workbuf[0]; } return(tmpbuf); }char *readline(int fd){ char ch,tmpbuf[256]; int i=0; memset(tmpbuf,'\0',256); while(read(fd,&ch,1)==1) { if(ch=='\n') break; else if(ch==EOF) { tmpbuf[0]='\0'; return(NULL); } else tmpbuf[i++]=ch; } tmpbuf[i]='\0'; return(&tmpbuf[0]);} char *ScanStr(char *sstr,char *dstr){ while(*(sstr++)==(*dstr++)) ; printf("str=[%s]\n",dstr); return(dstr);}char *PraseFile(char *filename){ char *workbuffer; workbuffer=ScanStr(DownLoadDir,filename); return(&workbuffer[0]);}int MkDir(){ char *dirname; int fd; fd=open("/tmp/myftpdir.tmp",O_RDWR,0666); if(fd<0) return(1); if (ftp_login ( &ftpinfo, HostName, UserName,PassWord , NULL ) < 0) { fprintf(stderr,"error: ftp_login failed.\n"); check_n_close ( &ftpinfo, ABNORMAL ); } if (ftp_chdir( &ftpinfo, UpLoadDir ) < 0) { fprintf(stderr,"error: ftp_chdir failed.\n"); (void) check_n_close ( &ftpinfo, ABNORMAL ); } if (ftp_pwd ( &ftpinfo ) < 0) { fprintf(stderr,"error: ftp_pwd failed.\n"); (void) check_n_close ( &ftpinfo, ABNORMAL ); } while((dirname=readline(fd))!=NULL) { if(dirname[0]=='\0') break; dirname=PraseFile(dirname); printf("dirname:[%s]\n",dirname); if (ftp_mkdir ( &ftpinfo,dirname ) < 0) { fprintf(stderr,"error: ftp_mkdir failed.\n"); check_n_close ( &ftpinfo, ABNORMAL ); return(1); } } if (ftp_bye( &ftpinfo ) < 0) { fprintf(stderr,"error: ftp_bye failed.\n"); (void) check_n_close ( &ftpinfo, ABNORMAL ); } close(fd); return(0);}int PutFile(){ char *filename,*dfilename; int fd; filename=(char *)malloc(sizeof(char)*256); dfilename=(char *)malloc(sizeof(char)*256); fd=open("/tmp/myftpfile.tmp",O_RDWR,0666); if(fd<0) return(1); if (ftp_login ( &ftpinfo, HostName, UserName, PassWord, NULL ) < 0) { fprintf(stderr,"error: ftp_login failed.\n"); (void) check_n_close ( &ftpinfo, ABNORMAL ); return(2); } if (ftp_chdir( &ftpinfo, UpLoadDir ) < 0) { fprintf(stderr,"error: ftp_chdir failed.\n"); (void) check_n_close ( &ftpinfo, ABNORMAL ); } while((filename=readline(fd))!=NULL) { dfilename=PraseFile(filename); printf("filename:[%s] dfilename:[%s]\n",filename,dfilename); if (ftp_putfile ( &ftpinfo,"/etc/passwd","/tmp/passwd" ) < 0) { fprintf(stderr,"error: ftp_putfile failed.\n"); (void) check_n_close ( &ftpinfo, ABNORMAL ); } else { fprintf(stderr,"transfer speed: \n"); fprintf(stderr,"\t\tbytes transferred = %ld\n", ftpinfo.speed.size_bytes); fprintf(stderr,"\t\ttime taken = %.2g seconds\n", ftpinfo.speed.seconds); fprintf(stderr,"\t\trate = %.2g Kbytes/s\n", ftpinfo.speed.kbs); } } if (ftp_bye( &ftpinfo ) < 0) { fprintf(stderr,"error: ftp_bye failed.\n"); (void) check_n_close ( &ftpinfo, ABNORMAL ); } close(fd); return(0);}int dirfun(char *dirname,int fd1,int fd2){ DIR *dp; char namebuf[256],tmpname[256]; struct dirent *dirp; struct stat buf; memset(namebuf,0,256); strcpy(namebuf,dirname); if((dp=opendir(namebuf))==NULL) return(1); while((dirp=readdir(dp))!=NULL) { memset(namebuf,0,256); strcpy(namebuf,dirname); if(!strncmp(dirp->d_name,".",1)) continue; strcat(namebuf,"/"); strcat(namebuf,dirp->d_name); if(stat(namebuf,&buf)<0) continue; else { if(S_ISREG(buf.st_mode)) { strcpy(tmpname,namebuf); strcat(tmpname,"\n"); write(fd1,tmpname,strlen(tmpname)); } else if(S_ISDIR(buf.st_mode)) { strcpy(tmpname,namebuf); strcat(tmpname,"\n"); write(fd2,tmpname,strlen(tmpname)); dirfun(namebuf,fd1,fd2); } else { continue; } } } close(dp); return(0);}void check_n_close ( ftpinfo, status )FTPINFO *ftpinfo;int status;{ if (ftpinfo -> sockfd >= 0) close (ftpinfo -> sockfd); if (status == ABNORMAL) fprintf(stderr,"error: %s\n", ftpinfo -> ftp_msg); else fprintf(stderr,"success: %s\n", ftpinfo -> ftp_msg); fprintf(stderr,"final reply from server: %d\n", ftpinfo -> reply); fflush ( stdout ); exit (status);}都是他惹的祸!!! 作业题? 我故意把表名改掉想测试回滚,怎么就报这个错误了,奇怪阿 我装数据库的时候设置了sa的密码,可以改么? insert into 语句为什么不执行呀??? 多用户同时访问数据库的情况怎么处理? select和delete在一起的用法请求帮助! sql语句,急等 急!在线等!请高手指点 Sql Server 2000 注册 Oracle 9i(10g)链接服务器 失败 如何从一个sqlserver表里,取最后的5条记录呢? pb,delphi程序员,你们就等失业吧 关于timer组见的interval属性中的最小单位
* Author : leechie *
* Date : 2001/06/22 *
* Email : [email protected] *
* Descriptions : This is the FTP application use FTP API *
****************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/fcntl.h>
#include <dirent.h>
#include <net/libftp.h>#define NORMAL 0
#define ABNORMAL 1
#define ON 1
#define OFF 0char DownLoadDir[256];
char UpLoadDir[256];
char HostName[256];
char UserName[256];
char PassWord[256];
FTPINFO ftpinfo;void check_n_close();
char *ScanStr(char *sstr,char *dstr);
char *PraseFile(char *filename);
char *readline(int fd);
int dirfun(char *dirname,int fd1,int fd2);
char *GetConfig(char *InVal);
int PutFile();
int MkDir();int main(int argc,char *argv[])
{
int fd1,fd2;
strcpy(DownLoadDir,GetConfig("DownLoadDir"));
strcpy(UpLoadDir,GetConfig("UpLoadDir"));
strcpy(HostName,GetConfig("HostName"));
strcpy(UserName,GetConfig("UserName"));
strcpy(PassWord,GetConfig("PassWord"));
ftpinfo.debug = ON;
ftpinfo.transf_calc = ON;
ftpinfo.linger = OFF;
printf("%s\t%s\t%s\t%s\n",DownLoadDir,UpLoadDir,HostName,UserName,PassWord);
unlink("/tmp/myftpfile.tmp");
unlink("/tmp/myftpdir.tmp");
fd1=open("/tmp/myftpfile.tmp",O_RDWR|O_CREAT|O_EXCL,0666);
if(fd1<0)
{
perror("Open");
exit(1);
}
fd2=open("/tmp/myftpdir.tmp",O_RDWR|O_CREAT|O_EXCL,0666);
if(fd2<0)
{
perror("Open");
exit(1);
}
dirfun(DownLoadDir,fd1,fd2);
close(fd1);
close(fd2);
MkDir();
PutFile();
exit(0);
}char *GetConfig(char *InVal)
{
char *tmpbuf;
char workbuf[256];
if((tmpbuf=getenv(InVal))==NULL)
{
fprintf(stderr,"[%s]\t>",InVal);
gets(workbuf);
tmpbuf=&workbuf[0];
}
return(tmpbuf);
}char *readline(int fd)
{
char ch,tmpbuf[256];
int i=0;
memset(tmpbuf,'\0',256);
while(read(fd,&ch,1)==1)
{
if(ch=='\n')
break;
else if(ch==EOF)
{
tmpbuf[0]='\0';
return(NULL);
}
else
tmpbuf[i++]=ch;
}
tmpbuf[i]='\0';
return(&tmpbuf[0]);
} char *ScanStr(char *sstr,char *dstr)
{
while(*(sstr++)==(*dstr++))
;
printf("str=[%s]\n",dstr);
return(dstr);
}char *PraseFile(char *filename)
{
char *workbuffer;
workbuffer=ScanStr(DownLoadDir,filename);
return(&workbuffer[0]);
}int MkDir()
{
char *dirname;
int fd;
fd=open("/tmp/myftpdir.tmp",O_RDWR,0666);
if(fd<0)
return(1);
if (ftp_login ( &ftpinfo, HostName, UserName,PassWord , NULL ) < 0)
{
fprintf(stderr,"error: ftp_login failed.\n");
check_n_close ( &ftpinfo, ABNORMAL );
}
if (ftp_chdir( &ftpinfo, UpLoadDir ) < 0)
{
fprintf(stderr,"error: ftp_chdir failed.\n");
(void) check_n_close ( &ftpinfo, ABNORMAL );
}
if (ftp_pwd ( &ftpinfo ) < 0)
{
fprintf(stderr,"error: ftp_pwd failed.\n");
(void) check_n_close ( &ftpinfo, ABNORMAL );
}
while((dirname=readline(fd))!=NULL)
{
if(dirname[0]=='\0')
break;
dirname=PraseFile(dirname);
printf("dirname:[%s]\n",dirname);
if (ftp_mkdir ( &ftpinfo,dirname ) < 0)
{
fprintf(stderr,"error: ftp_mkdir failed.\n");
check_n_close ( &ftpinfo, ABNORMAL );
return(1);
}
}
if (ftp_bye( &ftpinfo ) < 0)
{
fprintf(stderr,"error: ftp_bye failed.\n");
(void) check_n_close ( &ftpinfo, ABNORMAL );
}
close(fd);
return(0);
}int PutFile()
{
char *filename,*dfilename;
int fd;
filename=(char *)malloc(sizeof(char)*256);
dfilename=(char *)malloc(sizeof(char)*256);
fd=open("/tmp/myftpfile.tmp",O_RDWR,0666);
if(fd<0)
return(1);
if (ftp_login ( &ftpinfo, HostName, UserName, PassWord, NULL ) < 0)
{
fprintf(stderr,"error: ftp_login failed.\n");
(void) check_n_close ( &ftpinfo, ABNORMAL );
return(2);
}
if (ftp_chdir( &ftpinfo, UpLoadDir ) < 0)
{
fprintf(stderr,"error: ftp_chdir failed.\n");
(void) check_n_close ( &ftpinfo, ABNORMAL );
}
while((filename=readline(fd))!=NULL)
{
dfilename=PraseFile(filename);
printf("filename:[%s] dfilename:[%s]\n",filename,dfilename);
if (ftp_putfile ( &ftpinfo,"/etc/passwd","/tmp/passwd" ) < 0)
{
fprintf(stderr,"error: ftp_putfile failed.\n");
(void) check_n_close ( &ftpinfo, ABNORMAL );
}
else
{
fprintf(stderr,"transfer speed: \n");
fprintf(stderr,"\t\tbytes transferred = %ld\n",
ftpinfo.speed.size_bytes);
fprintf(stderr,"\t\ttime taken = %.2g seconds\n",
ftpinfo.speed.seconds);
fprintf(stderr,"\t\trate = %.2g Kbytes/s\n",
ftpinfo.speed.kbs);
}
}
if (ftp_bye( &ftpinfo ) < 0)
{
fprintf(stderr,"error: ftp_bye failed.\n");
(void) check_n_close ( &ftpinfo, ABNORMAL );
}
close(fd);
return(0);
}int dirfun(char *dirname,int fd1,int fd2)
{
DIR *dp;
char namebuf[256],tmpname[256];
struct dirent *dirp;
struct stat buf;
memset(namebuf,0,256);
strcpy(namebuf,dirname);
if((dp=opendir(namebuf))==NULL)
return(1);
while((dirp=readdir(dp))!=NULL)
{
memset(namebuf,0,256);
strcpy(namebuf,dirname);
if(!strncmp(dirp->d_name,".",1))
continue;
strcat(namebuf,"/");
strcat(namebuf,dirp->d_name);
if(stat(namebuf,&buf)<0)
continue;
else
{
if(S_ISREG(buf.st_mode))
{
strcpy(tmpname,namebuf);
strcat(tmpname,"\n");
write(fd1,tmpname,strlen(tmpname));
}
else if(S_ISDIR(buf.st_mode))
{
strcpy(tmpname,namebuf);
strcat(tmpname,"\n");
write(fd2,tmpname,strlen(tmpname));
dirfun(namebuf,fd1,fd2);
}
else
{
continue;
}
}
}
close(dp);
return(0);
}void check_n_close ( ftpinfo, status )
FTPINFO *ftpinfo;
int status;
{
if (ftpinfo -> sockfd >= 0)
close (ftpinfo -> sockfd);
if (status == ABNORMAL)
fprintf(stderr,"error: %s\n", ftpinfo -> ftp_msg);
else
fprintf(stderr,"success: %s\n", ftpinfo -> ftp_msg); fprintf(stderr,"final reply from server: %d\n", ftpinfo -> reply);
fflush ( stdout );
exit (status);
}
都是他惹的祸!!!