fputc.c

来自「一个类linux的dos下开发的操作系统.」· C语言 代码 · 共 34 行

C
34
字号
#include <stdio.h>
#include <os.h> /* write() */
/*****************************************************************************
*****************************************************************************/
int fputc(int c, FILE *stream)
{
	char one_char;
	int ret_val;

	ret_val = c;
	if(stream->flags == _IONBF || stream->size == 0) /* unbuffered */
	{
		one_char = c;
		if(write(stream->handle, &one_char, 1) != 1)
			ret_val = EOF;
	}
	else				/* buffered */
	{
		if(stream->room == 0)
		{
			if(fflush(stream) != 0)
				return EOF;
		}
		*(stream->buf_ptr)++ = c;
		(stream->room)--;
		if((stream->flags & _IOLBF) && (c == '\n'))
		{
			if(fflush(stream) != 0)
				ret_val = EOF;
		}
	}
	return ret_val;
}

⌨️ 快捷键说明

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