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

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

?? sz.c

?? 開源串口利用Xmodem,Ymodem,ZModem 下載,上傳的程序.在Linux,Arm-Linux 都可使用
?? C
?? 第 1 頁 / 共 3 頁
字號:
		in=fopen(name, "r");	if (in==NULL) {		++errcnt;		return OK;	/* pass over it, there may be others */	}	BEofseen = Eofseen = 0;  vpos = 0;	/* Check for directory */	fstat(fileno(in), &f);#ifdef POSIX	if (S_ISDIR(f.st_mode))#else	c = f.st_mode & S_IFMT;	if (c == S_IFDIR || c == S_IFBLK)#endif	{		fclose(in);		return OK;	}	++Filcnt;	switch (wctxpn(name)) {	case ZSKIP:	case ZFERR:		return OK;	case OK:		break;	default:		return ERROR;	}	if (!Zmodem && wctx(f.st_size))		return ERROR;	if (Unlinkafter)		unlink(oname);	return 0;}/* * generate and transmit pathname block consisting of *  pathname (null terminated), *  file length, mode time and file mode in octal *  as provided by the Unix fstat call. *  N.B.: modifies the passed name, may extend it! */wctxpn(name)char *name;{	register char *p, *q;	char name2[PATHLEN];	struct stat f;	vfile("wctxpn: %s", name);	if (Modem2) {		if (*name && fstat(fileno(in), &f)!= -1) {			fprintf(stderr, "Sending %s, %ld XMODEM blocks. ",			  name, (127+f.st_size)>>7);		}		printf("Start your local XMODEM receive.     ");		fflush(stdout);		return OK;	}	zperr2("Awaiting pathname nak for %s", *name?name:"<END>");	if ( !Zmodem)		if (getnak())			return ERROR;	q = (char *) 0;	if (Dottoslash) {		/* change . to . */		for (p=name; *p; ++p) {			if (*p == '/')				q = p;			else if (*p == '.')				*(q=p) = '/';		}		if (q && strlen(++q) > 8) {	/* If name>8 chars */			q += 8;			/*   make it .ext */			strcpy(name2, q);	/* save excess of name */			*q = '.';			strcpy(++q, name2);	/* add it back */		}	}	for (p=name, q=txbuf ; *p; )		if ((*q++ = *p++) == '/' && !Fullname)			q = txbuf;	*q++ = 0;	p=q;	while (q < (txbuf + 1024))		*q++ = 0;	if (*name) {		if (fstat(fileno(in), &f)!= -1)			sprintf(p, "%lu %lo %o 3 %d %ld", f.st_size, f.st_mtime,			  f.st_mode, Filesleft, Totalleft);		Totalleft -= f.st_size;	}	if (--Filesleft <= 0)		Filesleft = Totalleft = 0;	if (Totalleft < 0)		Totalleft = 0;	/* force 1k blocks if name won't fit in 128 byte block */	if (txbuf[125])		blklen=1024;	else {		/* A little goodie for IMP/KMD */		txbuf[127] = (f.st_size + 127) >>7;		txbuf[126] = (f.st_size + 127) >>15;	}	vfile("wctxpn: %s", p);	if (Zmodem)		return zsendfile(txbuf, 1+strlen(p)+(p-txbuf));	if (wcputsec(txbuf, 0, 128)==ERROR)		return ERROR;	return OK;}getnak(){	register firstch;	Lastrx = 0;	for (;;) {		switch (firstch = readline(800)) {		case ZPAD:			if (getzrxinit())				return ERROR;			return FALSE;		case TIMEOUT:			sprintf(endmsg, "Timeout waiting for ZRINIT");			return TRUE;		case WANTG:#ifdef MODE2OK			mode(2);	/* Set cbreak, XON/XOFF, etc. */#endif			Optiong = TRUE;			blklen=1024;		case WANTCRC:			Crcflg = TRUE;		case NAK:			return FALSE;		case CAN:			if ((firstch = readline(20)) == CAN && Lastrx == CAN) {				sprintf(endmsg, "Got CAN waiting to send file");				return TRUE;			}		default:			break;		}		Lastrx = firstch;	}}wctx(flen)long flen;{	register int thisblklen;	register int sectnum, attempts, firstch;	long charssent;	charssent = 0;  firstsec=TRUE;  thisblklen = blklen;	vfile("wctx:file length=%ld", flen);	while ((firstch=readline(Rxtimeout))!=NAK && firstch != WANTCRC	  && firstch != WANTG && firstch!=TIMEOUT && firstch!=CAN)		;	if (firstch==CAN) {		zperr1("Receiver CANcelled");		return ERROR;	}	if (firstch==WANTCRC)		Crcflg=TRUE;	if (firstch==WANTG)		Crcflg=TRUE;	sectnum=0;	for (;;) {		if (flen <= (charssent + 896L))			thisblklen = 128;		if ( !filbuf(txbuf, thisblklen))			break;		if (wcputsec(txbuf, ++sectnum, thisblklen)==ERROR)			return ERROR;		charssent += thisblklen;	}	fclose(in);	attempts=0;	do {		purgeline();		sendline(EOT);		flushmo();		++attempts;	}		while ((firstch=(readline(Rxtimeout)) != ACK) && attempts < RETRYMAX);	if (attempts == RETRYMAX) {		zperr1("No ACK on EOT");		return ERROR;	}	else		return OK;}wcputsec(buf, sectnum, cseclen)char *buf;int sectnum;int cseclen;	/* data length of this sector to send */{	register checksum, wcj;	register char *cp;	unsigned oldcrc;	int firstch;	int attempts;	firstch=0;	/* part of logic to detect CAN CAN */	if (Verbose>1)		fprintf(stderr, "Sector %3d %2dk\n", Totsecs, Totsecs/8 );	for (attempts=0; attempts <= RETRYMAX; attempts++) {		Lastrx= firstch;		sendline(cseclen==1024?STX:SOH);		sendline(sectnum);		sendline(-sectnum -1);		oldcrc=checksum=0;		for (wcj=cseclen,cp=buf; --wcj>=0; ) {			sendline(*cp);			oldcrc=updcrc((0377& *cp), oldcrc);			checksum += *cp++;		}		if (Crcflg) {			oldcrc=updcrc(0,updcrc(0,oldcrc));			sendline((int)oldcrc>>8);			sendline((int)oldcrc);		}		else			sendline(checksum);		flushmo();		if (Optiong) {			firstsec = FALSE; return OK;		}		firstch = readline(Rxtimeout);gotnak:		switch (firstch) {		case CAN:			if(Lastrx == CAN) {cancan:				zperr1("Cancelled");  return ERROR;			}			break;		case TIMEOUT:			zperr1("Timeout on sector ACK"); continue;		case WANTCRC:			if (firstsec)				Crcflg = TRUE;		case NAK:			zperr1("NAK on sector"); continue;		case ACK: 			firstsec=FALSE;			Totsecs += (cseclen>>7);			return OK;		case ERROR:			zperr1("Got burst for sector ACK"); break;		default:			zperr2("Got %02x for sector ACK", firstch); break;		}		for (;;) {			Lastrx = firstch;			if ((firstch = readline(Rxtimeout)) == TIMEOUT)				break;			if (firstch == NAK || firstch == WANTCRC)				goto gotnak;			if (firstch == CAN && Lastrx == CAN)				goto cancan;		}	}	zperr1("Retry Count Exceeded");	return ERROR;}/* fill buf with count chars padding with ^Z for CPM */filbuf(buf, count)register char *buf;{	register m;	m = read(fileno(in), buf, count);	if (m <= 0)		return 0;	while (m < count)		buf[m++] = 032;	return count;}/* Fill buffer with blklen chars */zfilbuf(){	int n;#ifdef TXBSIZE	vfile("zfilbuf: bytcnt =%lu vpos=%lu blklen=%d", bytcnt, vpos, blklen);	/* We assume request is within buffer, or just beyond */	txbuf = Txb + (bytcnt & TXBMASK);	if (vpos <= bytcnt) {		n = fread(txbuf, 1, blklen, in);		vpos += n;		if (n < blklen)			Eofseen = 1;		vfile("zfilbuf: n=%d vpos=%lu Eofseen=%d", n, vpos, Eofseen);		return n;	}	if (vpos >= (bytcnt+blklen))		return blklen;	/* May be a short block if crash recovery etc. */	Eofseen = BEofseen;	return (vpos - bytcnt);#else	n = fread(txbuf, 1, blklen, in);	if (n < blklen) {		Eofseen = 1;		vfile("zfilbuf: n=%d vpos=%lu Eofseen=%d", n, vpos, Eofseen);	}	return n;#endif}#ifdef TXBSIZE/* Replacement for brain damaged fseek function.  Returns 0==success */fooseek(fptr, pos, whence)FILE *fptr;long pos;{	long m, n;	vfile("fooseek: pos =%lu vpos=%lu Canseek=%d", pos, vpos, Canseek);	/* Seek offset < current buffer */	if (pos < (vpos -TXBSIZE +1024)) {		BEofseen = 0;		if (Canseek > 0) {			vpos = pos & ~TXBMASK;			if (vpos > pos)				vpos -= TXBSIZE;			vfile("seek to vpos=%ld", vpos);			if (fseek(fptr, vpos, 0))				return 1;		}		else if (Canseek == 0) {			vfile("seek to 00000");			if (fseek(fptr, vpos = 0L, 0))				return 1;		} else			return 1;		while (vpos < pos) {			n = fread(Txb, (size_t)1, (size_t)TXBSIZE, fptr);			vpos += n;			vfile("n=%d vpos=%ld", n, vpos);			if (n < TXBSIZE) {				BEofseen = 1;				break;			}		}		vfile("vpos=%ld", vpos);		return 0;	}	/* Seek offset > current buffer (Crash Recovery, etc.) */	if (pos > vpos) {		if (Canseek)			if (fseek(fptr, vpos = (pos & ~TXBMASK), 0))				return 1;		while (vpos <= pos) {			txbuf = Txb + (vpos & TXBMASK);			m = TXBSIZE - (vpos & TXBMASK);			vfile("m=%ld vpos=%ld", m,vpos);				n = fread(txbuf, (size_t)1, (size_t)m, fptr);			vfile("n=%ld vpos=%ld", n,vpos);			vpos += n;			vfile("bo=%d m=%ld vpos=%ld", txbuf-Txb,m,vpos);			if (n < m) {				BEofseen = 1;				break;			}		}		return 0;	}	/* Seek offset is within current buffer */	vfile("within buffer: vpos=%ld", vpos);	return 0;}#define fseek fooseek#endif/* * substr(string, token) searches for token in string s * returns pointer to token within string if found, NULL otherwise */char *substr(s, t)register char *s,*t;{	register char *ss,*tt;	/* search for first char of token */	for (ss=s; *s; s++)		if (*s == *t)			/* compare token with substring */			for (ss=s,tt=t; ;) {				if (*tt == 0)					return s;				if (*ss++ != *tt++)					break;			}	return NULL;}char *usinfo[] = {	"Send Files and Commands with ZMODEM/YMODEM/XMODEM Protocol\n",	"Usage:	sz [-+abcdefgklLnNuvwxyYZ] [-] file ...",	"\t	zcommand [-egv] COMMAND",	"\t	zcommandi [-egv] COMMAND",	"\t	sb [-adfkuv] [-] file ...",	"\t	sx [-akuv] [-] file",	""};usage(){	char **pp;	fprintf(stderr, "\n%s %s for %s by Chuck Forsberg, Omen Technology INC\n",	 Progname, VERSION, OS);	fprintf(stderr, "\t\t\042The High Reliability Software\042\n");	for (pp=usinfo; **pp; ++pp)		fprintf(stderr, "%s\n", *pp);	fprintf(stderr,"\nCopyright (c) 1997 Omen Technology INC All Rights Reserved\n");	fprintf(stderr,	 "See sz.doc and README for option descriptions and licensing information.\n\n");	fprintf(stderr,	"This program is designed to talk to terminal programs,\nnot to be called by one.\n");	exit(3);}/* * Get the receiver's init parameters */getzrxinit(){	register n;	struct stat f;	for (n=10; --n>=0; ) {				switch (zgethdr(Rxhdr)) {		case ZCHALLENGE:	/* Echo receiver's challenge numbr */			stohdr(Rxpos);			zshhdr(4, ZACK, Txhdr);			continue;		case ZCOMMAND:		/* They didn't see out ZRQINIT */			stohdr(0L);			zshhdr(4, ZRQINIT, Txhdr);			continue;		case ZRINIT:			if (Rxhlen==4 && (Rxhdr[ZF1] & ZRQNVH)) {				stohdr(0x80L);	/* Show we can var header */				zshhdr(4, ZRQINIT, Txhdr);				continue;			}			Rxflags = 0377 & Rxhdr[ZF0];#if COMPL			Usevhdrs = 1;#else			Usevhdrs = Rxhdr[ZF1] & CANVHDR;#endif			Txfcs32 = (Wantfcs32 && (Rxflags & CANFC32));			Zctlesc |= Rxflags & TESCCTL;			if (Rxhdr[ZF1] & ZRRQQQ)	/* Escape ctrls */				initzsendmsk(Rxhdr+ZRPXQQ);			Rxbuflen = (0377 & Rxhdr[ZP0])+((0377 & Rxhdr[ZP1])<<8);			if ( !(Rxflags & CANFDX))				Txwindow = 0;			vfile("Rxbuflen=%d Tframlen=%ld", Rxbuflen, Tframlen);			signal(SIGINT, SIG_IGN);#ifdef MODE2OK			mode(2);	/* Set cbreak, XON/XOFF, etc. */#endif#ifndef READCHECK#ifndef USG			/* Use 1024 byte frames if no sample/interrupt */			if (Rxbuflen < 32 || Rxbuflen > 1024) {				Rxbuflen = 1024;				vfile("Rxbuflen=%d", Rxbuflen);			}#endif#endif			/* Override to force shorter frame length */			if (Rxbuflen && (Rxbuflen>Tframlen) && (Tframlen>=32))				Rxbuflen = Tframlen;			if ( !Rxbuflen && (Tframlen>=32))				Rxbuflen = Tframlen;			vfile("Rxbuflen=%d", Rxbuflen);			/*			 * If input is not a regular file, force ACK's to			 *  prevent running beyond the buffer limits			 */			if ( !Command) {				fstat(fileno(in), &f);				if (#ifdef POSIX				    !S_ISREG(f.st_mode)#else				    (f.st_mode & S_IFMT) != S_IFREG#endif				    ) {					Canseek = -1;					f.st_size = 0;					f.st_mtime = 0;#ifdef TXBSIZE					Txwindow = TXBSIZE - 1024;					Txwspac = TXBSIZE/4;#else					sprintf(endmsg, "Can't seek on input");					return ERROR;#endif				}			}			/* Set initial subpacket length */			if (blklen < 1024) {	/* Command line override? */				if (Baudrate > 300)					blklen = 256;				if (Baudrate > 1200)					blklen = 512;				if (Baudrate > 2400)					blklen = 1024;				if (Baudrate < 300)					blklen = 1024;			}			if (Rxbuflen && blklen>Rxbuflen)				blklen = Rxbuflen;			if (blkopt && blklen > blkopt)				blklen = blkopt;			vfile("Rxbuflen=%d blklen=%d", Rxbuflen, blklen);			vfile("Txwindow = %u Txwspac = %d", Txwindow, Txwspac);			if (Lztrans == ZTRLE && (Rxflags & CANRLE))				Txfcs32 = 2;			else				Lztrans = 0;			return (sendzsinit());		case ZCAN:		case TIMEOUT:			return ERROR;		case ZRQINIT:			if (Rxhdr[ZF0] == ZCOMMAND)				continue;		default:			zshhdr(4, ZNAK, Txhdr);			continue;		}	}	return ERROR;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
51精品秘密在线观看| 亚洲午夜电影在线观看| 亚洲午夜视频在线| 国产一区三区三区| 欧美亚男人的天堂| 国产精品国产三级国产普通话蜜臀| 午夜伊人狠狠久久| 色综合久久中文字幕综合网| 久久无码av三级| 日韩va欧美va亚洲va久久| 色综合天天综合色综合av| 精品国产3级a| 日本va欧美va精品| 欧美唯美清纯偷拍| 亚洲精品第一国产综合野| 岛国精品在线观看| 久久色中文字幕| 免费三级欧美电影| 日韩午夜精品视频| 日韩av电影一区| 欧美日韩国产一区二区三区地区| 日韩伦理免费电影| av电影一区二区| 国产精品私人影院| av动漫一区二区| 最新日韩在线视频| 日韩欧美国产综合一区| 日日夜夜精品视频免费| 欧美人xxxx| 美国一区二区三区在线播放| 欧美三级电影在线看| 亚洲成人免费看| 欧美高清视频一二三区 | 精品一区二区三区的国产在线播放| 一本到不卡精品视频在线观看| 中文字幕亚洲一区二区av在线| 成人免费视频国产在线观看| 国产精品无人区| proumb性欧美在线观看| 日韩一区欧美一区| 欧美三级日韩三级| 美腿丝袜在线亚洲一区 | 精品污污网站免费看| 亚洲一区免费观看| 91精品国产一区二区三区蜜臀| 婷婷综合在线观看| 日韩三级.com| 国产另类ts人妖一区二区| 国产偷v国产偷v亚洲高清| 成人开心网精品视频| 亚洲黄色录像片| 在线成人小视频| 国模无码大尺度一区二区三区 | 欧美乱熟臀69xxxxxx| 性欧美疯狂xxxxbbbb| 欧美va亚洲va国产综合| 国产99久久久国产精品| 亚洲日本一区二区| 欧美一级久久久久久久大片| 国产精品影音先锋| 一区二区三区欧美亚洲| 91麻豆精品国产91久久久更新时间 | 国产女主播一区| 欧美亚州韩日在线看免费版国语版| 奇米色一区二区三区四区| 国产拍揄自揄精品视频麻豆| 在线观看视频91| 狠狠色丁香婷婷综合久久片| 亚洲女同女同女同女同女同69| 欧美一区二区视频观看视频| 成人手机电影网| 日韩成人精品视频| 国产精品毛片大码女人| 91精品国产综合久久国产大片| 成人18视频日本| 免费精品99久久国产综合精品| 中文幕一区二区三区久久蜜桃| 欧美日韩大陆一区二区| 成人激情文学综合网| 麻豆专区一区二区三区四区五区| 亚洲视频一区在线观看| 亚洲精品一区二区在线观看| 欧美午夜精品一区二区三区| 高清不卡一区二区| 久久国内精品视频| 亚洲在线视频网站| 国产精品国产精品国产专区不蜜 | 制服丝袜av成人在线看| 99久久精品国产精品久久| 久久er精品视频| 调教+趴+乳夹+国产+精品| 最新日韩av在线| 中文字幕第一页久久| xnxx国产精品| 91精品婷婷国产综合久久竹菊| 色婷婷综合久久久久中文 | 麻豆国产欧美日韩综合精品二区| 亚洲已满18点击进入久久| 国产精品免费看片| 久久久久久影视| 日韩女优电影在线观看| 91精品国产综合久久国产大片| 欧美性xxxxxxxx| 欧美午夜精品理论片a级按摩| 99精品国产热久久91蜜凸| 国产999精品久久| 国产精品99久久久久久久女警 | 免费在线视频一区| 日日摸夜夜添夜夜添亚洲女人| 一区二区三区色| 亚洲视频图片小说| 亚洲精品乱码久久久久| 亚洲人成网站在线| 亚洲欧美福利一区二区| 亚洲欧洲日韩av| 亚洲精品久久久蜜桃| 亚洲猫色日本管| 一区二区高清在线| 亚洲黄色片在线观看| 亚洲国产成人91porn| 亚洲国产精品一区二区久久| 亚洲在线免费播放| 肉丝袜脚交视频一区二区| 天堂蜜桃一区二区三区| 日本不卡一区二区三区| 美女一区二区三区| 国产精品一级二级三级| 粉嫩久久99精品久久久久久夜| 国产成人夜色高潮福利影视| 成人美女视频在线看| 在线精品视频免费播放| 7777精品久久久大香线蕉| 日韩女优视频免费观看| 中文字幕欧美日韩一区| 亚洲色图19p| 天天色综合天天| 国产一区二区精品久久| av电影一区二区| 欧美日韩电影在线播放| 26uuu亚洲综合色欧美| 国产精品人人做人人爽人人添| 亚洲色图欧洲色图婷婷| 亚洲第一成年网| 麻豆精品在线看| av综合在线播放| 欧美一区国产二区| 国产精品美女久久久久av爽李琼| 1024成人网| 日产欧产美韩系列久久99| 国产成人精品一区二| 在线视频一区二区免费| 亚洲精品一区二区三区99 | 中文字幕精品在线不卡| 亚洲一区二区三区影院| 久久99精品国产麻豆婷婷洗澡| 成人av在线一区二区三区| 欧美性videosxxxxx| 久久久久久久久99精品| 一区二区三区国产精品| 精品综合免费视频观看| 91看片淫黄大片一级在线观看| 91麻豆精品国产91| 中文字幕一区二区三| 蜜桃91丨九色丨蝌蚪91桃色| 99re热视频这里只精品| 欧美xxxxxxxxx| 亚洲一区二区在线免费看| 国产精品亚洲一区二区三区在线| 91国模大尺度私拍在线视频| www久久久久| 日韩影院精彩在线| 色狠狠综合天天综合综合| 国产欧美日韩精品在线| 美女视频网站久久| 欧美三级中文字幕| 亚洲免费观看高清在线观看| 韩国欧美国产1区| 欧美日韩一区二区三区视频| 国产欧美日韩麻豆91| 激情欧美一区二区三区在线观看| 欧美日韩国产首页| 亚洲蜜桃精久久久久久久| 国产精品99久久久久久有的能看| 日韩欧美国产综合一区 | 亚洲精品免费在线| 99精品视频在线观看| 国产精品私房写真福利视频| 国产专区欧美精品| 日韩欧美精品三级| 秋霞国产午夜精品免费视频| 欧美视频在线不卡| 亚洲一区二三区| 色欧美乱欧美15图片| 亚洲日本丝袜连裤袜办公室| 99麻豆久久久国产精品免费优播| 久久日韩精品一区二区五区| 黄页视频在线91| 欧美精品一区二区三区蜜桃视频 | 蜜桃在线一区二区三区| 91麻豆精品国产91久久久更新时间|