一个非常优秀的操作系统源代码

源代码在线查看: printf.c

软件大小: 201 K
上传用户: lichao0516
关键词: 操作系统 源代码
下载地址: 免注册下载 普通下载 VIP

相关代码

				/* Gemini Nucleus				 *				 * $Id: printf.c,v 1.2 2000/04/04 09:03:38 verdich Exp $				 *				 * This program is free software; you can redistribute it and/or				 * modify it under the terms of the GNU General Public License				 * as published by the Free Software Foundation; either version 2				 * of the License, or (at your option) any later version.				 *				 * This program is distributed in the hope that it will be useful,				 * but WITHOUT ANY WARRANTY; without even the implied warranty of				 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the				 * GNU General Public License for more details.				 *				 * You should have received a copy of the GNU General Public License				 * along with this program; if not, write to the Free Software				 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 				 */								#include 				#include 				#include 				#include 				#include 				#include 								int				aprintf(int a, const char *fmt, ...)				{				  va_list arg;				  int result;								  va_start(arg, fmt);				  result = avprintf(a, fmt, arg);				  va_end(arg);				  return result;				}								int				avprintf(int a, const char *fmt, va_list arg)				{				  char *str;				  uint32_t num; 								  for(; *fmt; fmt++)				    {				      if (*fmt != '%')					{					  aputchar(a, *fmt);					  continue;					}				      				      fmt++;				      switch(*fmt)					{					case 's':					  str = va_arg(arg, char *);					  aputs(a, str);					  break;					case 'x':					  num = va_arg(arg, uint32_t);					  aputnumber(a, num, 16, 8);					  break;					case 'd':					  num = va_arg(arg, uint32_t);					  aputnumber(a, num, 10, 0);					  break;					default:					  /* ignore unsupported flags */					  break;					}				    }				  return 0;				}							

相关资源