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

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

?? ckudia.c

?? C 語言核心協(xié)議的 C 語言源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * Failure reasons for use with the 'longjmp' exit. */#define	F_time		1	/* timeout */#define F_int		2	/* interrupt */#define	F_modem		3	/* modem-detected failure */#define	F_minit		4	/* cannot initialize modem */staticchar *F_reason[5] = { 		/* failure reasons for message */    "Unknown",  "Timeout", "Interrupt", "Modem", "Initialize" };static int tries = 0;#define LBUFL 100static char lbuf[LBUFL];static jmp_buf sjbuf;static int (*savAlrm)();	/* for saving alarm handler */static int (*savInt)();		/* for saving interrupt handler */dialtime() {			/* timer interrupt handler */    longjmp( sjbuf, F_time );}dialint()			/* user-interrupt handler */    {    longjmp( sjbuf, F_int );    }staticttolSlow(s,millisec) char *s; int millisec; {  /* output s-l-o-w-l-y */    for (; *s; s++) {	ttoc(*s);	msleep(millisec);	}    }/* * Wait for a string of characters. * * The characters are waited for individually, and other characters may * be received "in between".  This merely guarantees that the characters * ARE received, and in the order specified. */staticwaitFor(s) char *s;    {    CHAR c;    while ( c = *s++ )			/* while more characters remain... */	while ( ( ttinc(0) & 0177 ) != c ) ;	/* wait for the character */    }staticdidWeGet(s,r) char *s, *r; {	/* Looks in string s for response r */    int lr = strlen(r);		/*  0 means not found, 1 means found it */    int i;    for (i = strlen(s)-lr; i >= 0; i--)    	if ( s[i] == r[0] ) if ( !strncmp(s+i,r,lr) ) return( 1 );    return( 0 );	    }/* R E S E T -- Reset alarms, etc. on exit. */staticreset ()    {    alarm(0);    signal(SIGALRM,savAlrm);		/* restore alarm handler */    signal(SIGINT,savInt);		/* restore interrupt handler */    }/*  D I A L  --  Dial up the remote system */dial(telnbr) char *telnbr; {    char c;    char *i, *j;    int waitct, status;    char errmsg[50], *erp;    MDMINF *pmdminf;	/* pointer to modem-specific info */    int augmdmtyp;	/* "augmented" modem type, to handle modem modes */    int mdmEcho = 0;	/* assume modem does not echo */    int n, n1;    char *pc;		/* pointer to a character */	if (!mdmtyp) {	    printf("Sorry, you must 'set modem' first\n");	    return(-2);	}	if (!local) {	    printf("Sorry, you must 'set line' first\n");	    return(-2);	}	if (speed < 0) {	    printf("Sorry, you must 'set speed' first\n");	    return(-2);        }	if (ttopen(ttname,&local,mdmtyp) < 0) {/* Open, no wait for carrier */	    erp = errmsg;	    sprintf(erp,"Sorry, can't open %s",ttname);	    perror(errmsg);	    return(-2);    	}	pmdminf = ptrtab[mdmtyp-1];	/* set pointer to modem info */ 	augmdmtyp = mdmtyp;		/* initialize "augmented" modem type *//* cont'd... */					/* interdigit waits for tone dial *//* ...dial, cont'd */	waitct = 1*strlen(telnbr) ;	/* compute time to dial worst case */	waitct += pmdminf->dial_time;	/* dialtone + completion wait times */	for (i=telnbr; *i; i++) 	/* add in pause characters time */	    for (j=pmdminf->pause_chars; *j; j++)		if (*i == *j) {		    waitct += pmdminf->pause_time; 		    break;		    }       printf("Dialing thru %s, speed %d, number %s.\r\n",ttname,speed,telnbr);       printf("The timeout for completing the call is %d seconds.\r\n",waitct);       printf("Type the interrupt character to cancel the dialing.\r\n");/* Hang up the modem (in case it wasn't "on hook") */	if ( tthang() < 0 ) {	    printf("Sorry, Can't hang up tty line\n");	    return(-2);	    }/* Condition console terminal and communication line */	    				/* place line into "clocal" dialing state */	if ( ttpkt(speed,DIALING) < 0 )  {	    printf("Sorry, Can't condition communication line\n");	    return(-2);    	}/* * Establish jump vector, or handle "failure" jumps. */    if ( n = setjmp(sjbuf) )		/* if a "failure jump" was taken... */	{	alarm ( 0 );			/* disable timeouts */	if ( n1 = setjmp(sjbuf) )	/* failure while handling failure */	    {	    printf ( "%s failure while handling failure.\r\n", F_reason[n1] );	    }	else				/* first (i.e., non-nested) failure */	    {	    signal ( SIGALRM, dialtime );	/* be sure to catch signals */	    if ( signal ( SIGINT, SIG_IGN ) != SIG_IGN ) 		signal ( SIGINT, dialint );	    alarm ( 5 );		/* be sure to get out of this section */	    ttclos ();			/* hangup and close the line */	    }	switch ( n )			/* type of failure */	    {	    case F_time:		/* timed out */		{		printf ( "No connection made within the allotted time.\r\n" );		break;		}	    case F_int:			/* dialing interrupted */		{		printf ( "Dialing interrupted.\r\n" );		break;		}	    case F_modem:		/* modem detected a failure */		{		printf ( "Failed (\"" );		for ( pc=lbuf; *pc; pc++ )		    if ( isprint(*pc) )			putchar(*pc);	/* display printable reason */ 		printf ( "\").\r\n" );		break;		}	    case F_minit:		/* cannot initialize modem */		{		printf ( "Cannot initialize modem.\r\n" );		break;		}	    }	reset ();			/* reset alarms, etc. */	return ( -2 );			/* exit with failure code */	}/* * Set timer and interrupt handlers. */    savAlrm = signal(SIGALRM,dialtime);	/* set alarm handler */    if ( ( savInt = signal ( SIGINT, SIG_IGN ) ) != SIG_IGN )	signal ( SIGINT, dialint );	/* set int handler if not ignored */    alarm(10);			/* give modem 10 seconds to wake up */    ttflui();			/* flush input buffer if any *//* * Put modem in command mode. */#define OKAY 1			/* modem attention attempt status */#define IGNORE 2#define GOT_O -2#define GOT_A -3switch (augmdmtyp) {    case n_HAYES:    case n_HAYESNV:	while(tries++ < 4) {	    ttol( HAYES.wake_str, strlen(HAYES.wake_str) );	/* wakeup */	    status = 0;	    while ( status <= 0 ) {		switch (ttinc(0) & 0177) {		    case 'A':			/* echoing, ignore */			status = GOT_A;			break;		    case 'T':			if (status == GOT_A) {			    mdmEcho = 1;	/* expect echoing later */			    status = 0;			    break;			}			status = IGNORE;			break;		    case '\n':		    case '\r':			status = 0;			break;		    case '0':			/* numeric result code */			augmdmtyp = n_HAYESNV;	/* nonverbal result codes */			status = OKAY;			break;		    case 'O':			/* maybe English result code*/			status = GOT_O;			break;		    case 'K':			if (status == GOT_O) {			    augmdmtyp = n_HAYES;			    status = OKAY;			    break;			}			/* else its default anyway */		    default:			status = IGNORE;			break;		    }		}	    if (status == OKAY) break;	    if (status == IGNORE) ttflui();	    sleep(1);		/* wait before retrying */	}        if (status != 0) break;	longjmp( sjbuf, F_minit );	/* modem-initialization failure *//* cont'd... */					/* interdigit waits for tone dial *//* ...dial, cont'd */    default:			/* place modem into command mode */	ttolSlow(pmdminf->wake_str, pmdminf->wake_rate);	waitFor(pmdminf->wake_prompt);	break;    }    alarm(0);			/* turn off alarm */    msleep(500);		/* give things settling time */    alarm(10);			/* alarm on dialing prompts */		/* Dial the number */				/* put modem into dialing mode */    ttolSlow(pmdminf->dmode_str, pmdminf->dial_rate);	    if (pmdminf->dmode_prompt) {	/* wait for prompt, if any expected */	waitFor(pmdminf->dmode_prompt);	msleep(300);	}    alarm(0);			/* turn off alarm on dialing prompts */    alarm(waitct);		/* time to allow for connecting */    ttflui();			/* clear out stuff from waking modem up */    sprintf(lbuf, pmdminf->dial_str, telnbr); /* form dialing string */    ttolSlow(lbuf,pmdminf->dial_rate);	/* send dialing string */    if (augmdmtyp == n_RACAL) {	/* acknowledge printout of dialing string */	sleep(3);	ttflui();	ttoc('\r');	}/* cont'd... */					/* interdigit waits for tone dial *//* ...dial, cont'd *//* Check for connection *//* * I believe we also need to look for carrier in order to determine if a * connection has been made.  In fact, for many we may only want to look for * the "failure" responses in order to short-circuit the timeout, and let * carrier be the determination of whether a connection has been made. -- DS */    status = 0;    strcpy(lbuf,"No Connection");	/* default failure reason */    while (status == 0) {      switch (augmdmtyp) {	default:	    for (n=0; n < LBUFL; n++) {	/* accumulate response */		lbuf[n] = (ttinc(0) & 0177); 		if ( lbuf[n] == '\r' || lbuf[n] == '\n' ) break;		}	    lbuf[n] = '\0';		/* terminate response from modem */	    if (n) {			/* if one or more characters present */		switch (augmdmtyp) {		  case n_CERMETEK:		    if (didWeGet(lbuf,"\016A")) {				status = CONNECTED;			ttolSlow("\016U 1\r",200);	/* make transparent*/			}		    break;		  case n_DF100:      /* DF100 won't generate some of these */		  case n_DF200:		    if (didWeGet(lbuf,"Attached")) status = CONNECTED;		    /*		     * The DF100 will respond with "Attached" even if DTR		     * and/or carrier are not present.  Another reason to		     * (also) wait for carrier?		     */		    if (didWeGet(lbuf,"Busy")) status = FAILED;		    if (didWeGet(lbuf,"Disconnected")) status = FAILED;		    if (didWeGet(lbuf,"Error")) status = FAILED;		    if (didWeGet(lbuf,"No answer")) status = FAILED;		    if (didWeGet(lbuf,"No dial tone")) status = FAILED;		    if (didWeGet(lbuf,"Speed:")) status = FAILED;		    /*		     * It appears that the "Speed:..." response comes after an		     * "Attached" response, so this is never seen.  HOWEVER,		     * it would be very handy to detect this and temporarily		     * reset the speed, since it's a nuiscance otherwise.		     * If we wait for some more input from the modem, how do		     * we know if it's from the remote host or the modem?		     * Carrier reportedly doesn't get set until after the		     * "Speed:..." response (if any) is sent.  Another reason		     * to (also) wait for carrier.		     */		    break;		  case n_GDC:		    if (didWeGet(lbuf,"ON LINE")) status = CONNECTED;		    if (didWeGet(lbuf,"NO CONNECT")) status = FAILED;		    break;		  case n_HAYES:		  case n_USROBOT:		    if (didWeGet(lbuf,"CONNECT")) status = CONNECTED;		    if (didWeGet(lbuf,"NO CARRIER")) status = FAILED;		    break;		  case n_PENRIL:		    if (didWeGet(lbuf,"OK")) status = CONNECTED;		    if (didWeGet(lbuf,"BUSY")) status = FAILED;		    if (didWeGet(lbuf,"NO RING")) status = FAILED;		    break;		  case n_RACAL:		    if (didWeGet(lbuf,"ON LINE")) status = CONNECTED;		    if (didWeGet(lbuf,"FAILED CALL")) status = FAILED;		    break;		  case n_VENTEL:		    if (didWeGet(lbuf,"ONLINE!")) status = CONNECTED;		    if (didWeGet(lbuf,"BUSY")) status = FAILED;		    if (didWeGet(lbuf,"DEAD PHONE")) status = FAILED;		    break;		}	    }	    break;	case n_DF03:			/* because response lacks CR or NL */	    c = ttinc(0) & 0177;	    if ( c == 'A' ) status = CONNECTED;	    if ( c == 'B' ) status = FAILED;	    break;	case n_HAYESNV:	    c = ttinc(0) & 0177;	    if (mdmEcho) {		/* sponge up dialing string */		mdmEcho = c!='\r';	/* until return is echoed */		break;		}	    if (c == '1') status = CONNECTED;	    if (c == '3') status = FAILED;	    if (c == '5') status = CONNECTED;	    break;	case n_UNKNOWN:	    /** SHOULD WAIT FOR CARRIER OR TIMEOUT -- DS **/	    break;	}				/* switch (augmdmtyp) */    }					/* while status == 0 */    alarm(0);				/* turn off alarm on connecting */    if ( status != CONNECTED )		/* modem-detected failure */	longjmp( sjbuf, F_modem );	/* exit (with reason in lbuf) */    alarm(3);				/* precaution in case of trouble */    ttpkt(speed,CONNECT);		/* cancel dialing state ioctl */    reset ();				/* reset alarms, etc. */    if ( ! quiet )	printf ( "Call completed.\07\r\n" );    return ( 0 );			/* return, and presumably connect */}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品亚洲人成人网在线播放| 成人免费毛片aaaaa**| 国产真实乱偷精品视频免| 99在线精品观看| 精品国内二区三区| 亚洲成人1区2区| 99久久免费国产| 国产欧美精品一区二区色综合朱莉| 午夜精品久久久久| 在线视频国内一区二区| 国产精品福利电影一区二区三区四区| 麻豆成人91精品二区三区| 欧洲激情一区二区| 最新成人av在线| 国产xxx精品视频大全| 精品人在线二区三区| 日本中文字幕一区二区视频| 欧美色欧美亚洲另类二区| 成人欧美一区二区三区| 国产不卡在线播放| 国产欧美日韩精品在线| 精品一区二区三区香蕉蜜桃| 日韩一区二区在线免费观看| 婷婷成人激情在线网| 欧美亚洲国产bt| 亚洲精品视频在线观看网站| 91啪亚洲精品| 一区二区三区中文在线| 色琪琪一区二区三区亚洲区| 一区二区在线观看视频在线观看| 色综合久久综合网| 亚洲乱码一区二区三区在线观看| 91丨九色丨黑人外教| 亚洲伦在线观看| 欧美系列一区二区| 亚欧色一区w666天堂| 欧美视频在线观看一区| 亚洲成人av中文| 欧美群妇大交群的观看方式| 青娱乐精品在线视频| 日韩精品综合一本久道在线视频| 麻豆一区二区三| 久久午夜老司机| 成人精品免费看| 亚洲美女在线国产| 欧美日韩精品一区二区在线播放| 性久久久久久久久久久久| 在线综合+亚洲+欧美中文字幕| 人人精品人人爱| 久久精品亚洲麻豆av一区二区| 国产成a人亚洲| 亚洲日本丝袜连裤袜办公室| 欧美乱妇23p| 国产精品资源网站| 亚洲精选在线视频| 日韩视频中午一区| 99久久精品免费看| 日韩精品成人一区二区三区| 精品久久人人做人人爽| 97国产精品videossex| 亚洲综合视频在线观看| 欧美xxxxx裸体时装秀| 成人激情午夜影院| 七七婷婷婷婷精品国产| 国产精品区一区二区三区| 欧美美女直播网站| 丁香五精品蜜臀久久久久99网站 | 亚洲午夜精品在线| 欧美一区二区三区精品| 国产99精品在线观看| 婷婷成人激情在线网| 国产日韩视频一区二区三区| 欧美在线你懂得| 国产成人精品影视| 免费在线视频一区| 亚洲精品福利视频网站| 精品av久久707| 欧美无人高清视频在线观看| 国产在线播精品第三| 亚洲综合免费观看高清完整版 | 亚洲欧洲日产国产综合网| 91精品午夜视频| 91麻豆国产福利在线观看| 精品一区二区三区影院在线午夜 | 亚洲人成在线播放网站岛国| 日韩视频在线一区二区| 色综合天天综合狠狠| 紧缚奴在线一区二区三区| 午夜精品影院在线观看| 亚洲欧美日韩系列| 国产亲近乱来精品视频| 精品美女在线播放| 91精品国产综合久久婷婷香蕉| 91一区二区在线| www.亚洲色图.com| 另类欧美日韩国产在线| 午夜成人免费视频| 亚洲自拍偷拍欧美| 亚洲伊人色欲综合网| 中文字幕五月欧美| 国产精品区一区二区三| 国产欧美日韩亚州综合 | 久久精品国产秦先生| 一区二区三区日韩在线观看| 亚洲色大成网站www久久九九| 久久精品网站免费观看| 久久一日本道色综合| 精品久久免费看| 精品电影一区二区| 久久影音资源网| 久久亚洲综合色| 精品久久国产字幕高潮| 亚洲精品一线二线三线无人区| 3atv在线一区二区三区| 欧美一区二区在线免费播放| 欧美老肥妇做.爰bbww视频| 欧美人动与zoxxxx乱| 在线电影院国产精品| 欧美一级二级在线观看| 日韩欧美在线不卡| 久久亚洲一区二区三区四区| 国产欧美一区二区精品仙草咪| 国产欧美日韩在线观看| 国产精品久久久久婷婷二区次| 日韩伦理免费电影| 亚洲国产精品麻豆| 久久精品国产网站| 成人免费毛片片v| 色狠狠色噜噜噜综合网| 欧美三级资源在线| 日韩视频一区二区三区在线播放| 精品国产电影一区二区| 中文久久乱码一区二区| 亚洲精品免费一二三区| 三级在线观看一区二区| 精品一区二区在线观看| av资源站一区| 欧美色精品天天在线观看视频| 91精品在线观看入口| 久久久一区二区| 一区二区三区免费看视频| 日本不卡视频在线观看| 国产精品88888| 欧洲精品在线观看| 欧美大白屁股肥臀xxxxxx| 国产精品欧美精品| 日韩精品乱码免费| 丁香激情综合五月| 欧美高清视频一二三区| 亚洲国产激情av| 日韩精品一区第一页| 国产麻豆欧美日韩一区| 欧美午夜精品电影| 国产偷v国产偷v亚洲高清| 亚洲国产日韩在线一区模特| 国产精品一区二区你懂的| 在线观看亚洲精品视频| 久久综合九色综合97_久久久| 亚洲欧美激情插| 国产成人亚洲综合色影视| 欧美日韩一区三区四区| 国产精品久久久久久亚洲伦| 蜜桃视频免费观看一区| 在线看日本不卡| 亚洲国产精品国自产拍av| 美日韩黄色大片| 欧美午夜影院一区| 国产精品家庭影院| 久久91精品久久久久久秒播| 欧美少妇性性性| 亚洲欧洲日产国产综合网| 国产一区啦啦啦在线观看| 91精品一区二区三区久久久久久 | 亚洲丝袜自拍清纯另类| 精品亚洲免费视频| 6080日韩午夜伦伦午夜伦| 日韩毛片视频在线看| 国产91清纯白嫩初高中在线观看| 8x8x8国产精品| 亚洲成人免费视频| 欧美中文字幕一二三区视频| 国产精品久久久久久妇女6080| 久久99精品国产.久久久久| 欧美日韩精品欧美日韩精品一综合| 国产精品入口麻豆原神| 国产超碰在线一区| 久久精品一区二区三区不卡 | 紧缚奴在线一区二区三区| 在线综合亚洲欧美在线视频| 亚洲一区二区三区中文字幕| 色综合天天视频在线观看 | 久久精品国产亚洲一区二区三区| 在线这里只有精品| 亚洲另类色综合网站| 色综合av在线| 亚洲一级片在线观看| 91国偷自产一区二区三区观看| 亚洲天天做日日做天天谢日日欢| av男人天堂一区| 国产精品久久久久久久久久久免费看|