⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 draino.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
/*	Copyright (c) 1984 AT&T	*//*	  All Rights Reserved  	*//*	THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T	*//*	The copyright notice above does not evidence any   	*//*	actual or intended publication of such source code.	*/#ifndef lintstatic	char sccsid[] = "@(#)draino.c 1.1 92/07/30 SMI"; /* from S5R3.1 1.3.1.4 */#endif#include	"curses_inc.h"/* * Code for various kinds of delays.  Most of this is nonportable and * requires various enhancements to the operating system, so it won't * work on all systems.  It is included in curses to provide a portable * interface, and so curses itself can use it for function keys. */#define	NAPINTERVAL	100/* * Wait until the output has drained enough that it will only take * ms more milliseconds to drain completely. * Needs Berkeley TIOCOUTQ ioctl.  Returns ERR if impossible. */draino(ms)int	ms;{#if defined(TIOCOUTQ)    /* number of chars = that many ms */    int	ncneeded;    /* 10 bits/char, 1000 ms/sec, baudrate in bits/sec */    ncneeded = SP->baud * ms / (10 * 1000);    while (TRUE)    {	int	rv;		/* ioctl return value */	int	ncthere = 0;/* number of chars actually in output queue */	rv = ioctl(cur_term->Filedes, TIOCOUTQ, &ncthere);#ifdef	DEBUG	if (outf)	    fprintf(outf, "draino: rv %d, ncneeded %d, ncthere %d\n",		rv, ncneeded, ncthere);#endif	/* DEBUG */	if (rv < 0)	    return (ERR);	/* ioctl didn't work */	if (ncthere <= ncneeded)	    return (OK);	napms(NAPINTERVAL);    }#elif defined(TCSETAW)	/*	 * SYSV simulation - waits until the entire queue is empty,	 * then sets the state to what it already is (e.g. no-op).	 * Unfortunately this only works if ms is zero.	 */    if (ms <= 0)    {	(void) ioctl(cur_term->Filedes, TCSETAW, &PROGTTY);	return (OK);    }    else	return (ERR);#else    /*     * No way to fake it, so we return failure.     * Used #else to avoid warning from compiler about unreached stmt     */    return (ERR);#endif}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -