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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ftp.c

?? linux下ftp client程序的源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
	}	if (proxy) {		proxtrans(cmd, local, remote);		return;	}	if (curtype != type)		changetype(type, 0);	closefunc = NULL;	oldintr = NULL;	oldintp = NULL;	lmode = "w";	if (setjmp(sendabort)) {		while (cpend) {			getreply(0);		}		if (data >= 0) {			close(data);			data = -1;		}		if (oldintr)			signal(SIGINT,oldintr);		if (oldintp)			signal(SIGPIPE,oldintp);		code = -1;		return;	}	oldintr = signal(SIGINT, abortsend);	if (strcmp(local, "-") == 0)		fin = stdin;	else if (*local == '|') {		oldintp = signal(SIGPIPE,SIG_IGN);		fin = popen(local + 1, "r");		if (fin == NULL) {			error (0, errno, "%s", local + 1);			signal(SIGINT, oldintr);			signal(SIGPIPE, oldintp);			code = -1;			return;		}		closefunc = pclose;	} else {		fin = fopen(local, "r");		if (fin == NULL) {			error (0, errno, "local: %s", local);			signal(SIGINT, oldintr);			code = -1;			return;		}		closefunc = fclose;		if (fstat(fileno(fin), &st) < 0 ||		    (st.st_mode&S_IFMT) != S_IFREG) {			fprintf(stdout, "%s: not a plain file.\n", local);			signal(SIGINT, oldintr);			fclose(fin);			code = -1;			return;		}	}	if (initconn()) {		signal(SIGINT, oldintr);		if (oldintp)			signal(SIGPIPE, oldintp);		code = -1;		if (closefunc != NULL)			(*closefunc)(fin);		return;	}	if (setjmp(sendabort))		goto abort;	if (restart_point &&	    (strcmp(cmd, "STOR") == 0 || strcmp(cmd, "APPE") == 0)) {		int rc;		switch (curtype) {		case TYPE_A:			rc = fseek(fin, (long) restart_point, SEEK_SET);			break;		case TYPE_I:		case TYPE_L:			rc = lseek(fileno(fin), restart_point, SEEK_SET);			break;		}		if (rc < 0) {			error (0, errno, "local: %s", local);			restart_point = 0;			if (closefunc != NULL)				(*closefunc)(fin);			return;		}		if (command("REST %ld", (long) restart_point)			!= CONTINUE) {			restart_point = 0;			if (closefunc != NULL)				(*closefunc)(fin);			return;		}		restart_point = 0;		lmode = "r+w";	}	if (remote) {		if (command("%s %s", cmd, remote) != PRELIM) {			signal(SIGINT, oldintr);			if (oldintp)				signal(SIGPIPE, oldintp);			if (closefunc != NULL)				(*closefunc)(fin);			return;		}	} else		if (command("%s", cmd) != PRELIM) {			signal(SIGINT, oldintr);			if (oldintp)				signal(SIGPIPE, oldintp);			if (closefunc != NULL)				(*closefunc)(fin);			return;		}	dout = dataconn(lmode);	if (dout == NULL)		goto abort;	gettimeofday(&start, (struct timezone *)0);	oldintp = signal(SIGPIPE, SIG_IGN);	switch (curtype) {	case TYPE_I:	case TYPE_L:		errno = d = 0;		while ((c = read(fileno(fin), buf, sizeof (buf))) > 0) {			bytes += c;			for (bufp = buf; c > 0; c -= d, bufp += d)				if ((d = write(fileno(dout), bufp, c)) <= 0)					break;			if (hash) {				while (bytes >= local_hashbytes) {					putchar('#');					local_hashbytes += hashbytes;				}				fflush(stdout);			}		}		if (hash && bytes > 0) {			if (bytes < local_hashbytes)				putchar('#');			putchar('\n');			fflush(stdout);		}		if (c < 0)			error (0, errno, "local: %s", local);		if (d < 0) {			if (errno != EPIPE)				error (0, errno, "netout");			bytes = -1;		}		break;	case TYPE_A:		while ((c = getc(fin)) != EOF) {			if (c == '\n') {				while (hash && (bytes >= local_hashbytes)) {					putchar('#');					fflush(stdout);					local_hashbytes += hashbytes;				}				if (ferror(dout))					break;				putc('\r', dout);				bytes++;			}			putc(c, dout);			bytes++;	/*		if (c == '\r') {			  	*/	/*		(void)	putc('\0', dout);  // this violates rfc */	/*			bytes++;				*/	/*		}                          			*/		}		if (hash) {			if (bytes < local_hashbytes)				putchar('#');			putchar('\n');			fflush(stdout);		}		if (ferror(fin))			error (0, errno, "local: %s", local);		if (ferror(dout)) {			if (errno != EPIPE)				error (0, errno, "netout");			bytes = -1;		}		break;	}	if (closefunc != NULL)		(*closefunc)(fin);	fclose(dout);	gettimeofday(&stop, (struct timezone *)0);	getreply(0);	signal(SIGINT, oldintr);	if (oldintp)		signal(SIGPIPE, oldintp);	if (bytes > 0)		ptransfer("sent", bytes, &start, &stop);	return;abort:	signal(SIGINT, oldintr);	if (oldintp)		signal(SIGPIPE, oldintp);	if (!cpend) {		code = -1;		return;	}	if (data >= 0) {		close(data);		data = -1;	}	if (dout)		fclose(dout);	getreply(0);	code = -1;	if (closefunc != NULL && fin != NULL)		(*closefunc)(fin);	gettimeofday(&stop, (struct timezone *)0);	if (bytes > 0)		ptransfer("sent", bytes, &start, &stop);}jmp_buf	recvabort;voidabortrecv(sig)  int sig;{	mflag = 0;	abrtflag = 0;	printf("\nreceive aborted\nwaiting for remote to finish abort\n");	fflush(stdout);	longjmp(recvabort, 1);}voidrecvrequest(cmd, local, remote, lmode, printnames)	char *cmd, *local, *remote, *lmode;	int printnames;{	FILE *fout, *din = 0;	int (*closefunc) (FILE *);	sig_t oldintr, oldintp;	int c, d, is_retr, tcrflag, bare_lfs = 0, blksize;	static int bufsize=0;	static char *buf;	long bytes = 0, local_hashbytes = hashbytes;	struct timeval start, stop;	is_retr = strcmp(cmd, "RETR") == 0;	if (is_retr && verbose && printnames) {		if (local && *local != '-')			printf("local: %s ", local);		if (remote)			printf("remote: %s\n", remote);	}	if (proxy && is_retr) {		proxtrans(cmd, local, remote);		return;	}	closefunc = NULL;	oldintr = NULL;	oldintp = NULL;	tcrflag = !crflag && is_retr;	if (setjmp(recvabort)) {		while (cpend) {			getreply(0);		}		if (data >= 0) {			close(data);			data = -1;		}		if (oldintr)			signal(SIGINT, oldintr);		code = -1;		return;	}	oldintr = signal(SIGINT, abortrecv);	if (strcmp(local, "-") && *local != '|') {		if (runique && (local = gunique(local)) == NULL) {			signal(SIGINT, oldintr);			code = -1;			return;		}	}	if (!is_retr) {		if (curtype != TYPE_A)			changetype(TYPE_A, 0);	} else if (curtype != type)		changetype(type, 0);	if (initconn()) {		signal(SIGINT, oldintr);		code = -1;		return;	}	if (setjmp(recvabort))		goto abort;	if (is_retr && restart_point &&	    command("REST %ld", (long) restart_point) != CONTINUE)		return;	if (remote) {		if (command("%s %s", cmd, remote) != PRELIM) {			signal(SIGINT, oldintr);			return;		}	} else {		if (command("%s", cmd) != PRELIM) {			signal(SIGINT, oldintr);			return;		}	}	din = dataconn("r");	if (din == NULL)		goto abort;	if (strcmp(local, "-") == 0)		fout = stdout;	else if (*local == '|') {		oldintp = signal(SIGPIPE, SIG_IGN);		fout = popen(local + 1, "w");		if (fout == NULL) {			error (0, errno, "%s", local+1);			goto abort;		}		closefunc = pclose;	} else {		fout = fopen(local, lmode);		if (fout == NULL) {			error (0, errno, "local: %s", local);			goto abort;		}		closefunc = fclose;	}	blksize = BUFSIZ;	if (blksize > bufsize) {		if (buf)			free(buf);		buf = malloc((unsigned)blksize);		if (buf == NULL) {			error (0, errno, "malloc");			bufsize = 0;			goto abort;		}		bufsize = blksize;	}	gettimeofday(&start, (struct timezone *)0);	switch (curtype) {	case TYPE_I:	case TYPE_L:		if (restart_point &&		    lseek(fileno(fout), restart_point, SEEK_SET) < 0) {			error (0, errno, "local: %s", local);			if (closefunc != NULL)				(*closefunc)(fout);			return;		}		errno = d = 0;		while ((c = read(fileno(din), buf, bufsize)) > 0) {			if ((d = write(fileno(fout), buf, c)) != c)				break;			bytes += c;			if (hash) {				while (bytes >= local_hashbytes) {					putchar('#');					local_hashbytes += hashbytes;				}				fflush(stdout);			}		}		if (hash && bytes > 0) {			if (bytes < local_hashbytes)				putchar('#');			putchar('\n');			fflush(stdout);		}		if (c < 0) {			if (errno != EPIPE)				error (0, errno, "netin");			bytes = -1;		}		if (d < c) {			if (d < 0)				error (0, errno, "local: %s", local);			else				error (0, 0, "%s: short write", local);		}		break;	case TYPE_A:		if (restart_point) {			int i, n, ch;			if (fseek(fout, 0L, SEEK_SET) < 0)				goto done;			n = restart_point;			for (i = 0; i++ < n;) {				if ((ch = getc(fout)) == EOF)					goto done;				if (ch == '\n')					i++;			}			if (fseek(fout, 0L, SEEK_CUR) < 0) {done:				error (0, errno, "local: %s", local);				if (closefunc != NULL)					(*closefunc)(fout);				return;			}		}		while ((c = getc(din)) != EOF) {			if (c == '\n')				bare_lfs++;			while (c == '\r') {				while (hash && (bytes >= local_hashbytes)) {					putchar('#');					fflush(stdout);					local_hashbytes += hashbytes;				}				bytes++;				if ((c = getc(din)) != '\n' || tcrflag) {					if (ferror(fout))						goto break2;					putc('\r', fout);					if (c == '\0') {						bytes++;						goto contin2;					}					if (c == EOF)						goto contin2;				}			}			putc(c, fout);			bytes++;	contin2:	;		}break2:		if (bare_lfs) {			printf("WARNING! %d bare linefeeds received in ASCII mode\n", bare_lfs);			printf("File may not have transferred correctly.\n");		}		if (hash) {			if (bytes < local_hashbytes)				putchar('#');			putchar('\n');			fflush(stdout);		}		if (ferror(din)) {			if (errno != EPIPE)				error (0, errno, "netin");			bytes = -1;		}		if (ferror(fout))			error (0, errno, "local: %s", local);		break;	}	if (closefunc != NULL)		(*closefunc)(fout);	signal(SIGINT, oldintr);	if (oldintp)		signal(SIGPIPE, oldintp);	fclose(din);	gettimeofday(&stop, (struct timezone *)0);	getreply(0);	if (bytes > 0 && is_retr)		ptransfer("received", bytes, &start, &stop);	return;abort:/* abort using RFC959 recommended IP,SYNC sequence  */	if (oldintp)		signal(SIGPIPE, oldintr);	signal(SIGINT, SIG_IGN);	if (!cpend) {		code = -1;		signal(SIGINT, oldintr);		return;	}	abort_remote(din);	code = -1;	if (data >= 0) {		close(data);		data = -1;	}	if (closefunc != NULL && fout != NULL)		(*closefunc)(fout);	if (din)		fclose(din);	gettimeofday(&stop, (struct timezone *)0);	if (bytes > 0)		ptransfer("received", bytes, &start, &stop);	signal(SIGINT, oldintr);}/* * Need to start a listen on the data channel before we send the command, * otherwise the server's connect may fail. */intinitconn(){	char *p, *a;	int result, len, tmpno = 0;	int on = 1;	int a0, a1, a2, a3, p0, p1;	if (passivemode) {		data = socket(AF_INET, SOCK_STREAM, 0);		if (data < 0) {			perror("ftp: socket");			return(1);		}		if ((options & SO_DEBUG) &&		    setsockopt(data, SOL_SOCKET, SO_DEBUG, (char *)&on,			       sizeof (on)) < 0)			perror("ftp: setsockopt (ignored)");		if (command("PASV") != COMPLETE) {			printf("Passive mode refused.\n");			goto bad;		}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产亚洲一区二区三区| 91免费在线视频观看| 岛国一区二区在线观看| 欧美三级视频在线| 亚洲国产精品ⅴa在线观看| 亚洲一区二区在线视频| 国产一区二区三区在线观看免费视频 | 亚洲亚洲人成综合网络| 国内久久精品视频| 欧美性xxxxxxxx| 国产欧美精品日韩区二区麻豆天美| 一区二区欧美精品| 成人手机电影网| 欧美mv日韩mv国产网站| 亚洲国产视频一区| 色综合天天综合在线视频| 精品欧美黑人一区二区三区| 亚洲小少妇裸体bbw| 成人精品视频一区| 久久久久综合网| 国产成人精品午夜视频免费| 日韩精品一区二区三区四区视频| 亚洲一区二区三区四区不卡| 99国产欧美另类久久久精品| 国产清纯美女被跳蛋高潮一区二区久久w | 国产91富婆露脸刺激对白| 欧美一区二区三区电影| 亚洲不卡一区二区三区| 日本大香伊一区二区三区| 国产精品夫妻自拍| 福利一区在线观看| 国产精品天干天干在观线| 狠狠狠色丁香婷婷综合激情| 欧美岛国在线观看| 美女一区二区三区在线观看| 777a∨成人精品桃花网| 亚洲成人福利片| 欧美男人的天堂一二区| 五月天一区二区| 欧美日韩在线精品一区二区三区激情| 亚洲精选在线视频| 欧美激情在线观看视频免费| 精品一区二区三区视频| 精品av久久707| 国产成人av电影在线| 国产无一区二区| 97精品国产露脸对白| 亚洲一区日韩精品中文字幕| 欧美三级视频在线观看| 日本不卡一区二区三区高清视频| 日韩午夜在线观看| 国产一区二区在线观看视频| 国产精品久99| 在线精品视频一区二区三四| 午夜精品久久久久久久99水蜜桃| 91精品啪在线观看国产60岁| 国产综合色视频| 一区视频在线播放| 欧美日韩国产区一| 九九国产精品视频| 中文字幕在线不卡| 4438成人网| 国产成人精品一区二| 亚洲一区免费视频| 亚洲精品在线网站| 99国产精品99久久久久久| 亚洲成人免费观看| 国产亚洲欧美色| 欧美丝袜丝交足nylons图片| 另类专区欧美蜜桃臀第一页| 欧美国产精品中文字幕| 中文字幕亚洲欧美在线不卡| 欧美图区在线视频| 国产在线一区观看| 亚洲图片欧美一区| 国产欧美一区二区精品仙草咪| 色一区在线观看| 韩国精品主播一区二区在线观看| 亚洲视频免费在线| 精品国产乱码久久久久久图片| 一本大道av一区二区在线播放| 人人超碰91尤物精品国产| 中文在线一区二区| 日韩一区二区免费高清| 色综合欧美在线| 国产一区二区在线视频| 五月天国产精品| 亚洲欧美偷拍另类a∨色屁股| 日韩一区二区电影在线| 91黄色激情网站| 成人在线视频一区二区| 蜜乳av一区二区| 国产91色综合久久免费分享| 日韩高清在线不卡| 亚洲另类一区二区| 欧美疯狂性受xxxxx喷水图片| 国产福利一区二区| 免费久久99精品国产| 亚洲综合自拍偷拍| 最新高清无码专区| 久久久99精品久久| 精品99999| 日韩免费视频一区| 欧美日韩高清影院| 欧美三级视频在线| 欧美色偷偷大香| 色激情天天射综合网| 99国产精品久久久久| 99热这里都是精品| 成人美女在线观看| 成人午夜电影小说| 国产91精品欧美| 国产成人aaa| 国产精品一区二区不卡| 在线观看免费一区| 欧日韩精品视频| 欧美在线不卡一区| 欧美日韩你懂得| 欧美日韩一区二区三区免费看| 91亚洲精品久久久蜜桃| 91在线观看美女| 91免费在线看| 欧洲视频一区二区| 欧美浪妇xxxx高跟鞋交| 欧美精品国产精品| 日韩三级在线免费观看| 精品久久一二三区| 国产日韩欧美激情| 国产精品久久久久久亚洲毛片| 国产精品久久久久一区二区三区 | 色就色 综合激情| 91黄色免费观看| 欧美军同video69gay| 欧美一区二区三区日韩| 欧美va亚洲va香蕉在线| 国产欧美日韩视频一区二区| 欧美激情在线一区二区| 亚洲精品国产a久久久久久 | 精品国产一区二区三区久久久蜜月| 欧美精选一区二区| 日韩欧美国产麻豆| 国产欧美精品一区二区三区四区| 国产精品传媒入口麻豆| 亚洲午夜精品17c| 蜜臀精品一区二区三区在线观看| 韩日欧美一区二区三区| 高清不卡一区二区在线| 91福利在线观看| 日韩欧美视频在线| 国产精品美女久久久久高潮| 亚洲精品视频在线看| 蜜桃av一区二区三区| 风间由美一区二区三区在线观看| 99精品国产热久久91蜜凸| 欧美高清视频www夜色资源网| 欧美成人a在线| 亚洲欧美经典视频| 麻豆精品久久久| 91麻豆高清视频| 欧美变态凌虐bdsm| 亚洲欧美激情插| 免费成人在线播放| 91美女在线观看| 欧美成人a视频| 亚洲综合成人在线视频| 国产成人精品综合在线观看| 欧美女孩性生活视频| 国产精品色一区二区三区| 日韩国产欧美视频| 色综合久久天天综合网| 久久综合九色综合97婷婷| 一区二区高清在线| 成人av午夜电影| 欧美大片拔萝卜| 亚洲第一搞黄网站| 日韩视频一区二区三区在线播放| 亚洲欧美在线观看| 精品写真视频在线观看| 欧美剧情片在线观看| 亚洲色图一区二区| 国产成人午夜精品5599| 欧美乱妇20p| 亚洲线精品一区二区三区| 成人的网站免费观看| 久久久久9999亚洲精品| 蜜臀久久久99精品久久久久久| 在线观看日韩国产| 国产精品不卡视频| 成人免费看的视频| 久久婷婷久久一区二区三区| 日韩av一区二区三区四区| 在线观看日韩国产| 亚洲综合色视频| 91丝袜呻吟高潮美腿白嫩在线观看| 久久九九久久九九| 极品少妇一区二区三区精品视频 | 99久久99久久综合| 日本一区二区视频在线观看| 国产乱淫av一区二区三区| 日韩视频一区二区三区在线播放 |