亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? file.c

?? minix軟件源代碼
?? C
字號:
/* file.c * * This file is part of ftp. * * * 01/25/96 Initial Release	Michael Temari, <temari@ix.netcom.com> */#include <sys/types.h>#include <sys/stat.h>#include <stdio.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include <fcntl.h>#include <errno.h>#include "ftp.h"#include "file.h"#include "net.h"_PROTOTYPE(static char *dir, (char *path, int full));_PROTOTYPE(static int asciisend, (int fd, int fdout));_PROTOTYPE(static int binarysend, (int fd, int fdout));_PROTOTYPE(static int asciirecv, (int fd, int fdin));_PROTOTYPE(static int binaryrecv, (int fd, int fdin));_PROTOTYPE(static int asciisize, (int fd, off_t *filesize));_PROTOTYPE(static off_t asciisetsize, (int fd, off_t filesize));static char buffer[8192];static char bufout[8192];static char line2[512];static char *dir(path, full)char *path;int full;{char cmd[128];static char name[32];   tmpnam(name);   if(full)	sprintf(cmd, "ls -l %s > %s", path, name);   else	sprintf(cmd, "ls %s > %s", path, name);   system(cmd);   return(name);}static int asciisend(fd, fdout)int fd;int fdout;{int s, len;char c;char *p;char *op, *ope;unsigned long total=0L;   if(atty) {	printf("Sent ");	fflush(stdout);   }   op = bufout;   ope = bufout + sizeof(bufout) - 3;   while((s = read(fd, buffer, sizeof(buffer))) > 0) {	total += (long)s;	p = buffer;	while(s-- > 0) {		c = *p++;		if(c == '\r') {			*op++ = '\r';			total++;		}		*op++ = c;		if(op >= ope) {			write(fdout, bufout, op - bufout);			op = bufout;		}	}	if(atty) {		printf("%8lu bytes\b\b\b\b\b\b\b\b\b\b\b\b\b\b", total);		fflush(stdout);	}   }   if(op > bufout)	write(fdout, bufout, op - bufout);   if(atty) {	printf("\n");	fflush(stdout);   }   return(s);}static int binarysend(fd, fdout)int fd;int fdout;{int s;unsigned long total=0L;   if(atty) {	printf("Sent ");	fflush(stdout);   }   while((s = read(fd, buffer, sizeof(buffer))) > 0) {	write(fdout, buffer, s);	total += (long)s;	if(atty) {		printf("%8lu bytes\b\b\b\b\b\b\b\b\b\b\b\b\b\b", total);		fflush(stdout);	}   }   if(atty) {	printf("\n");	fflush(stdout);   }   return(s);}int sendfile(fd, fdout)int fd;int fdout;{int s;   switch(type) {	case TYPE_A:		s = asciisend(fd, fdout);		break;	default:		s = binarysend(fd, fdout);   }   if(s < 0)	return(-1);   else	return(0);}static int asciirecv(fd, fdin)int fd;int fdin;{int s, len;int gotcr;char c;char *p;char *op, *ope;unsigned long total=0L;   if(isatty && fd > 2) {	printf("Received ");	fflush(stdout);   }   gotcr = 0;   op = bufout; ope = bufout + sizeof(bufout) - 3;   while((s = read(fdin, buffer, sizeof(buffer))) > 0) {	p = buffer;	total += (long)s;	while(s-- > 0) {		c = *p++;		if(gotcr) {			gotcr = 0;			if(c != '\n')				*op++ = '\r';		}		if(c == '\r')			gotcr = 1;		else			*op++ = c;		if(op >= ope) {			write(fd, bufout, op - bufout);			op = bufout;		}	}	if(atty && fd > 2) {		printf("%8lu bytes\b\b\b\b\b\b\b\b\b\b\b\b\b\b", total);		fflush(stdout);	}   }   if(gotcr)	*op++ = '\r';   if(op > bufout)	write(fd, bufout, op - bufout);   if(atty && fd > 2) {	printf("\n");	fflush(stdout);   }   return(s);}static binaryrecv(fd, fdin)int fd;int fdin;{int s;unsigned long total=0L;   if(atty && fd > 2) {	printf("Received ");	fflush(stdout);   }   while((s = read(fdin, buffer, sizeof(buffer))) > 0) {	write(fd, buffer, s);	total += (long)s;	if(atty && fd > 2) {		printf("%8lu bytes\b\b\b\b\b\b\b\b\b\b\b\b\b\b", total);		fflush(stdout);	}   }   if(atty && fd > 2) {	printf("\n");	fflush(stdout);   }   return(s);}int recvfile(fd, fdin)int fd;int fdin;{int s;   switch(type) {	case TYPE_A:		s = asciirecv(fd, fdin);		break;	default:		s = binaryrecv(fd, fdin);   }   if(s < 0)	return(-1);   else	return(0);}int DOascii(){int s;   if(DOcmdcheck())	return(0);   s = DOcommand("TYPE", "A");   type = TYPE_A;   return(s);}int DObinary(){int s;   if(DOcmdcheck())	return(0);   s = DOcommand("TYPE", "I");   type = TYPE_I;   return(s);}int DOpwd(){int s;   if(DOcmdcheck())	return(0);   s = DOcommand("PWD", "");   if(s == 500 || s == 502)	s = DOcommand("XPWD", "");   return(s);}int DOcd(){char *path;int s;   if(DOcmdcheck())	return(0);   path = cmdargv[1];   if(cmdargc < 2) {	readline("Path: ", line2, sizeof(line2));	path = line2;   }   if(!strcmp(path, ".."))   	s = DOcommand("CDUP", "");   else   	s = DOcommand("CWD", path);   if(s == 500 || s == 502) {	if(!strcmp(path, ".."))		s = DOcommand("XCUP", "");	else		s = DOcommand("XCWD", path);   }   return(s);}int DOmkdir(){char *path;int s;   if(DOcmdcheck())	return(0);   path = cmdargv[1];   if(cmdargc < 2) {	readline("Directory: ", line2, sizeof(line2));	path = line2;   }   s = DOcommand("MKD", path);   if(s == 500 || s == 502)	s = DOcommand("XMKD", path);   return(s);}int DOrmdir(){char *path;int s;   if(DOcmdcheck())	return(0);   path = cmdargv[1];   if(cmdargc < 2) {	readline("Directory: ", line2, sizeof(line2));	path = line2;   }   s = DOcommand("RMD", path);   if(s == 500 || s == 502)	s = DOcommand("XRMD", path);   return(s);}int DOdelete(){char *file;   if(DOcmdcheck())	return(0);   file = cmdargv[1];   if(cmdargc < 2) {	readline("File: ", line2, sizeof(line2));	file = line2;   }   return(DOcommand("DELE", file));}int DOmdtm(){char *file;   if(DOcmdcheck())	return(0);   file = cmdargv[1];   if(cmdargc < 2) {	readline("File: ", line2, sizeof(line2));	file = line2;   }   return(DOcommand("MDTM", file));}int DOsize(){char *file;   if(DOcmdcheck())	return(0);   file = cmdargv[1];   if(cmdargc < 2) {	readline("File: ", line2, sizeof(line2));	file = line2;   }   return(DOcommand("SIZE", file));}int DOstat(){char *file;   if(cmdargc < 2)	if(!linkopen) {		printf("You must \"OPEN\" a connection first.\n");		return(0);	} else		return(DOcommand("STAT", ""));   if(DOcmdcheck())	return(0);   file = cmdargv[1];   if(cmdargc < 2) {	readline("File: ", line2, sizeof(line2));	file = line2;   }   return(DOcommand("STAT", file));}int DOlist(){char *path;char *local;int fd;int s;   if(DOcmdcheck())	return(0);   path = cmdargv[1];   if(cmdargc < 2)	path = "";   if(cmdargc < 3)	local = "";   else	local = cmdargv[2];   if(*local == '\0')	fd = 1;   else	fd = open(local, O_WRONLY | O_CREAT | O_TRUNC, 0666);   if(fd < 0) {	printf("Could not open local file %s. Error %s\n", local, strerror(errno));	return(0);   }   s = DOdata("LIST", path, RETR, fd);   if(fd > 2)	close(fd);   return(s);}int DOnlst(){char *path;char *local;int fd;int s;   if(DOcmdcheck())	return(0);   path = cmdargv[1];   if(cmdargc < 2)	path = "";   if(cmdargc < 3)	local = "";   else	local = cmdargv[2];   if(*local == '\0')	fd = 1;   else	fd = open(local, O_WRONLY | O_CREAT | O_TRUNC, 0666);   if(fd < 0) {	printf("Could not open local file %s. Error %s\n", local, strerror(errno));	return(0);   }   s = DOdata("NLST", path, RETR, fd);   if(fd > 2)	close(fd);   return(s);}int DOretr(){char *file, *localfile;int fd;int s;   if(DOcmdcheck())	return(0);   file = cmdargv[1];   if(cmdargc < 2) {	readline("Remote File: ", line2, sizeof(line2));	file = line2;   }   if(cmdargc < 3)	localfile = file;   else	localfile = cmdargv[2];   fd = open(localfile, O_WRONLY | O_CREAT | O_TRUNC, 0666);   if(fd < 0) {	printf("Could not open local file %s. Error %s\n", localfile, strerror(errno));	return(0);   }   s = DOdata("RETR", file, RETR, fd);   close(fd);   return(s);}int DOrretr(){char *file, *localfile;int fd;int s;off_t filesize;char restart[16];   if(DOcmdcheck())	return(0);   file = cmdargv[1];   if(cmdargc < 2) {	readline("Remote File: ", line2, sizeof(line2));	file = line2;   }   if(cmdargc < 3)	localfile = file;   else	localfile = cmdargv[2];   fd = open(localfile, O_RDWR);   if(fd < 0) {	printf("Could not open local file %s. Error %s\n", localfile, strerror(errno));	return(0);   }   if(type == TYPE_A) {   	if(asciisize(fd, &filesize)) {   		printf("Could not determine ascii file size of %s\n", localfile);   		close(fd);   		return(0);   	}   } else	filesize = lseek(fd, 0, SEEK_END);   sprintf(restart, "%lu", filesize);   s = DOcommand("REST", restart);   if(s != 350) {   	close(fd);   	return(s);   }   s = DOdata("RETR", file, RETR, fd);   close(fd);   return(s);}int DOMretr(){char *files;int fd, s;FILE *fp;char name[32];   if(DOcmdcheck())	return(0);   files = cmdargv[1];   if(cmdargc < 2) {	readline("Files: ", line2, sizeof(line2));	files = line2;   }   tmpnam(name);   fd = open(name, O_WRONLY | O_CREAT | O_TRUNC, 0666);   if(fd < 0) {	printf("Could not open local file %s. Error %s\n", name, strerror(errno));	return(0);   }   s = DOdata("NLST", files, RETR, fd);   close(fd);   if(s == 226) {	fp = fopen(name, "r");	unlink(name);	if(fp == (FILE *)NULL) {		printf("Unable to open file listing.\n");		return(0);	}	while(fgets(line2, sizeof(line2), fp) != (char *)NULL) {		line2[strlen(line2)-1] = '\0';		printf("Retrieving file: %s\n", line2); fflush(stdout);		fd = open(line2, O_WRONLY | O_CREAT | O_TRUNC, 0666);		if(fd < 0)			printf("Unable to open local file %s\n", line2);		else {			s = DOdata("RETR", line2, RETR, fd);			close(fd);			if(s < 0) break;		}	}	fclose(fp);   } else	unlink(name);   return(s);}int DOappe(){char *file, *remotefile;int fd;int s;   if(DOcmdcheck())	return(0);   file = cmdargv[1];   if(cmdargc < 2) {	readline("Local File: ", line2, sizeof(line2));	file = line2;   }   if(cmdargc < 3)	remotefile = file;   else	remotefile = cmdargv[2];   fd = open(file, O_RDONLY);   if(fd < 0) {	printf("Could not open local file %s. Error %s\n", file, strerror(errno));	return(0);   }   s = DOdata("APPE", remotefile, STOR, fd);   close(fd);   return(s);}int DOstor(){char *file, *remotefile;int fd;int s;   if(DOcmdcheck())	return(0);   file = cmdargv[1];   if(cmdargc < 2) {	readline("Local File: ", line2, sizeof(line2));	file = line2;   }   if(cmdargc < 3)	remotefile = file;   else	remotefile = cmdargv[2];   fd = open(file, O_RDONLY);   if(fd < 0) {	printf("Could not open local file %s. Error %s\n", file, strerror(errno));	return(0);   }   s = DOdata("STOR", remotefile, STOR, fd);   close(fd);   return(s);}int DOrstor(){char *file, *remotefile;int fd;int s;off_t filesize, rmtsize;char restart[16];   if(DOcmdcheck())	return(0);   file = cmdargv[1];   if(cmdargc < 2) {	readline("Local File: ", line2, sizeof(line2));	file = line2;   }   if(cmdargc < 3)	remotefile = file;   else	remotefile = cmdargv[2];   s = DOcommand("SIZE", remotefile);   if(s != 215)   	return(s);   rmtsize = atol(reply+4);   fd = open(file, O_RDONLY);   if(fd < 0) {	printf("Could not open local file %s. Error %s\n", file, strerror(errno));	return(0);   }   if(type == TYPE_A)   	filesize = asciisetsize(fd, rmtsize);   else	filesize = lseek(fd, rmtsize, SEEK_SET);   if(filesize != rmtsize) {	printf("Could not set file start of %s\n", file);   	close(fd);   	return(0);   }   sprintf(restart, "%lu", rmtsize);   s = DOcommand("REST", restart);   if(s != 350) {   	close(fd);   	return(s);   }   s = DOdata("STOR", remotefile, STOR, fd);   close(fd);   return(s);}int DOstou(){char *file, *remotefile;int fd;int s;   if(DOcmdcheck())	return(0);   file = cmdargv[1];   if(cmdargc < 2) {	readline("Local File: ", line2, sizeof(line2));	file = line2;   }   if(cmdargc < 3)	remotefile = file;   else	remotefile = cmdargv[2];   fd = open(file, O_RDONLY);   if(fd < 0) {	printf("Could not open local file %s. Error %s\n", file, strerror(errno));	return(0);   }   s = DOdata("STOU", remotefile, STOR, fd);   close(fd);   return(s);}int DOMstor(){char *files;char *name;int fd, s;FILE *fp;   if(DOcmdcheck())	return(0);   files = cmdargv[1];   if(cmdargc < 2) {	readline("Files: ", line2, sizeof(line2));	files = line2;   }   name = dir(files, 0);   fp = fopen(name, "r");   if(fp == (FILE *)NULL) {	printf("Unable to open listing file.\n");	return(0);   }   while(fgets(line2, sizeof(line2), fp) != (char *)NULL) {	line2[strlen(line2)-1] = '\0';	printf("Sending file: %s\n", line2); fflush(stdout);	fd = open(line2, O_RDONLY);	if(fd < 0)		printf("Unable to open local file %s\n", line2);	else {		s = DOdata("STOR", line2, STOR, fd);		close(fd);		if(s < 0) break;	}   }   fclose(fp);   unlink(name);   return(s);}static int asciisize(fd, filesize)int fd;off_t *filesize;{unsigned long count;char *p, *pp;int cnt;   count = 0;   while((cnt = read(fd, buffer, sizeof(buffer))) > 0) {	p = buffer; pp = buffer + cnt;	count += cnt;	while(p < pp)		if(*p++ == '\n')			count++;   }   if(cnt == 0) {	*filesize = count;	return(0);   }   return(1);}static off_t asciisetsize(fd, filesize)int fd;off_t filesize;{off_t sp;int s;   sp = 0;   while(sp < filesize) {	s = read(fd, buffer, 1);	if(s < 0)		return(-1);	if(s == 0) break;	sp++;	if(*buffer == '\n')		sp++;   }   return(sp);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区电影| 国产精品美女一区二区| 高清久久久久久| 婷婷开心久久网| 国产精品久久久久久久浪潮网站 | 久久女同互慰一区二区三区| av在线一区二区三区| 久久超碰97人人做人人爱| 最新欧美精品一区二区三区| 欧美一三区三区四区免费在线看 | 成人黄动漫网站免费app| 午夜精品久久久久久久99樱桃| 成人免费视频播放| 日韩专区中文字幕一区二区| 国产精品久久久久久久久快鸭| jvid福利写真一区二区三区| 美女在线视频一区| 视频一区二区三区入口| 夜夜嗨av一区二区三区网页 | 日韩电影一区二区三区四区| 亚洲天堂2014| 欧美高清在线精品一区| 91精品在线免费观看| 欧美色视频一区| aaa欧美色吧激情视频| 国产.欧美.日韩| 黄色日韩三级电影| 欧美日韩不卡一区二区| 欧美综合色免费| 91免费看片在线观看| 成人国产在线观看| 成人av电影在线播放| 成人黄色av电影| 床上的激情91.| 国产91在线|亚洲| 国产很黄免费观看久久| 国产盗摄精品一区二区三区在线| 日韩理论片中文av| 国产精品视频看| 国产精品免费网站在线观看| 国产欧美精品国产国产专区| 欧美成人乱码一区二区三区| 欧美r级在线观看| 日韩写真欧美这视频| 欧美男生操女生| 日韩欧美激情四射| 精品日韩99亚洲| 久久婷婷色综合| 国产欧美日韩在线视频| 国产精品国产三级国产aⅴ原创| 8x福利精品第一导航| 欧美精品v国产精品v日韩精品| 国产精品一区二区三区网站| 久久国产精品72免费观看| 精品一区二区免费看| 日韩精品一区二区三区视频播放| 91啦中文在线观看| 色噜噜久久综合| 欧美日韩一区二区三区在线| 7777精品久久久大香线蕉| 欧美va亚洲va国产综合| 国产三级精品在线| 国产精品成人一区二区艾草 | 91亚洲精华国产精华精华液| 不卡的电影网站| 在线观看欧美精品| 在线电影国产精品| 精品国产一区二区在线观看| 国产精品视频在线看| 亚洲码国产岛国毛片在线| 亚洲午夜精品在线| 国产最新精品免费| 97se亚洲国产综合自在线观| 欧美日韩一二区| 国产亚洲精品久| 一二三区精品视频| 美女一区二区在线观看| 国产成人免费9x9x人网站视频| 毛片基地黄久久久久久天堂| 九一九一国产精品| 不卡的av网站| 欧美一区二区视频免费观看| 久久久精品免费观看| 亚洲最新在线观看| 国精产品一区一区三区mba桃花| 天天av天天翘天天综合网色鬼国产| 中文字幕精品一区| 亚洲第一福利一区| 国产美女精品在线| 欧美精品第1页| 国产精品伦理在线| 日韩电影一区二区三区| av中文一区二区三区| 日韩欧美国产小视频| 国产精品第五页| 精品一区精品二区高清| 色94色欧美sute亚洲线路一ni| 99re6这里只有精品视频在线观看| 国产成人精品一区二区三区四区| 国内一区二区视频| 在线观看91精品国产入口| 久久综合成人精品亚洲另类欧美 | 捆绑变态av一区二区三区| 成人久久视频在线观看| 日韩网站在线看片你懂的| 一区二区三区在线视频观看58| 亚洲乱码中文字幕| 极品少妇xxxx精品少妇| 欧美日韩精品一区二区天天拍小说| 欧美高清激情brazzers| 最新中文字幕一区二区三区| 激情五月激情综合网| 欧美日韩黄视频| 亚洲女厕所小便bbb| 国产激情一区二区三区四区| 69堂成人精品免费视频| 亚洲影视在线播放| 色综合婷婷久久| 国产精品美女久久久久高潮| 国产综合色视频| 精品动漫一区二区三区在线观看| 久久久精品黄色| 久久精品国产成人一区二区三区 | 欧美亚洲动漫精品| 中文字幕中文字幕在线一区| 精品亚洲免费视频| 日韩一区二区免费电影| 日本网站在线观看一区二区三区| 韩国一区二区在线观看| 日韩亚洲欧美在线观看| 天堂一区二区在线| 欧美高清一级片在线| 亚洲国产欧美在线人成| 欧美自拍偷拍一区| 亚洲一区二区美女| 欧美人与z0zoxxxx视频| 午夜久久久久久久久久一区二区| 国产一区二区在线影院| 精品对白一区国产伦| 国产一区二区三区在线观看精品 | 日韩电影免费在线观看网站| 色8久久精品久久久久久蜜| 亚洲欧美一区二区三区国产精品| 日韩av成人高清| 欧美人妇做爰xxxⅹ性高电影| 久久品道一品道久久精品| 国产麻豆91精品| 国产免费观看久久| 懂色av一区二区三区免费看| 成人免费小视频| 欧美色涩在线第一页| 日韩黄色片在线观看| 欧美成人伊人久久综合网| 精品伊人久久久久7777人| 久久精品综合网| www.久久久久久久久| 亚洲自拍另类综合| 欧美成人午夜电影| 国产成人免费高清| 亚洲主播在线播放| 日韩一区二区在线看| 国产一区亚洲一区| 亚洲欧美电影院| 3atv一区二区三区| 国产精品资源网站| 亚洲男女一区二区三区| 91精品久久久久久久久99蜜臂| 亚洲视频免费在线观看| 欧美日韩久久一区二区| 免费成人结看片| 国产精品免费视频观看| 欧美色网站导航| 国产一区二区三区国产| 中文字幕制服丝袜一区二区三区| 国产在线乱码一区二区三区| 国产精品不卡在线观看| 欧美三电影在线| 国产精品羞羞答答xxdd| 亚洲黄色免费电影| 欧美tickling挠脚心丨vk| 91免费观看视频| 麻豆精品一区二区综合av| 亚洲情趣在线观看| 日韩精品一区国产麻豆| 99久久久无码国产精品| 石原莉奈在线亚洲三区| 国产欧美综合在线观看第十页| 国产做a爰片久久毛片| 亚洲资源在线观看| 国产片一区二区三区| 欧美高清视频www夜色资源网| 亚洲国产一区二区三区| 亚洲精品在线观看视频| 日本韩国精品一区二区在线观看| 国产精品久久久久久久久久免费看 | 亚洲欧洲美洲综合色网| 91精品一区二区三区在线观看| 日韩成人午夜精品| 综合分类小说区另类春色亚洲小说欧美 | 欧美日韩精品二区第二页|