kputc.c

来自「minix操作系统最新版本(3.1.1)的源代码」· C语言 代码 · 共 36 行

C
36
字号
/* A server must occasionally print some message.  It uses a simple version of  * printf() found in the system library that calls putk() to output characters. * The LOG driver cannot use the regular putk().  Hence, it uses a special * version of putk() that directly sends to the TTY task.  * * Changes: *	21 July 2005:	Created  (Jorrit N. Herder) */#include "log.h"/*===========================================================================* *				kputc					     * *===========================================================================*/void kputc(c)int c;{/* Accumulate another character.  If 0 or buffer full, print it. */  static int buf_count;		/* # characters in the buffer */  static char print_buf[80];	/* output is buffered here */  message m;  if ((c == 0 && buf_count > 0) || buf_count == sizeof(print_buf)) {	m.DIAG_BUF_COUNT = buf_count;	m.DIAG_PRINT_BUF = print_buf;	m.DIAG_PROC_NR = SELF;	m.m_type = DIAGNOSTICS;		/* request TTY to output this buffer */	_sendrec(TTY_PROC_NR, &m);	/* if it fails, we give up */ 	buf_count = 0;			/* clear buffer for next batch */  }  if (c != 0) {  	print_buf[buf_count++] = c;  }}

⌨️ 快捷键说明

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