如题求linux系统下C/C++实现SFTP上传文件的代码,最好有一定的中文注释,谢谢了。
或是,
我看FTP上传的shell写的比较简单,但是,如何能判断是否上传成功哪??
如果想做上传的进度条的话?要如何处理哪?怎么判断上传了百分之多少哪??
有什么好的思路,最好有带注释的程序示例。
谢谢了!!!!
如果我哪问的不明白,请指出,我再补充。
|
可以脚本except
终端编程,havealook
#include
#include
#include
#include
#include
#include
#include
#include
voiddo_passwd(intpty,constchar*passwd,constchar*yes_no);
intmain(intargc,char*argv[])
{
argv[1]="yes";
argv[2]="momentx";
intpty,slave;
charpty_name[PATH_MAX];
intret;
pid_tchild;
if(argc!=1){
fprintf(stderr,"Usage:%sn",argv[0]);
exit(EXIT_FAILURE);
}
ret=openpty(&pty,&slave,pty_name,NULL,NULL);
if(ret==-1){
perror("openpty");
exit(EXIT_FAILURE);
}
child=fork();
if(child==-1){
perror("fork");
exit(EXIT_FAILURE);
}
elseif(child==0){
close(pty);
login_tty(slave);
//execl("/usr/bin/ssh","ssh","work@your_ip",NULL);
execl("/usr/bin/sshfs","sshfs","root@ip:/root/public","./temp",NULL);
}
close(slave);
printf("ptyname:%sn",pty_name);
//do_passwd(pty,argv[1],argv[2]);
do_passwd(pty,argv[2],argv[2]);
exit(EXIT_SUCCESS);
}
voiddo_passwd(intpty,constchar*passwd,constchar*yes_no)
{
charbuffer[80];
intret;
fd_setreads;
intinput_passwd=0;
while(1){
FD_ZERO(&reads);
FD_SET(pty,&reads);
ret=select(pty+1,&reads,NULL,NULL,NULL);
if(ret==-1){
perror("select");
break;
}
ret=read(pty,buffer,sizeof(buffer));
if(ret
linux sftp 上传文件内容为空 求linux 下 C/c++ 实现SFTP上传文件的代码 或shell 写的如何区分上传是否成功?...