XINU
printf.c
Go to the documentation of this file.
1 /* printf.c - printf*/
2 
3 #include <xinu.h>
4 #include <stdio.h>
5 #include <stdarg.h>
6 
7 extern void _fdoprnt(char *, va_list, int (*)(did32, char), int);
8 
9 /*------------------------------------------------------------------------
10  * printf - standard C printf function
11  *------------------------------------------------------------------------
12  */
13 int printf(
14  const char *fmt,
15  ...
16  )
17 {
18  va_list ap;
19  syscall putc(did32, char);
20 
21  va_start(ap, fmt);
22  _fdoprnt((char *)fmt, ap, putc, stdout);
23  va_end(ap);
24 
25  return 0;
26 }
全てのシステムヘッダファイルをインクルードする。
#define stdout
Definition: stdio.h:16
#define va_start(last, va)
va_list型を初期化し、可変長引数の使用を開始する。
Definition: stdarg.h:25
int printf(const char *fmt,...)
Definition: printf.c:13
void _fdoprnt(char *, va_list, int(*)(did32, char), int)
syscall putc(did32, char)
デバイスへ文字1Byteを送信する。
Definition: putc.c:18
#define va_end(va)
可変長引数の処理を終了する。
Definition: stdarg.h:42
可変長引数を実現するための宣言およびマクロ
int32 did32
デバイスID
Definition: kernel.h:28
__builtin_va_list va_list
可変個の実引数を扱うための情報を保持するための型(__builtin_va_listはGCCに定義された型) ...
Definition: stdarg.h:7
int32 syscall
システムコール関数 返り値の型
Definition: kernel.h:47