vasyslog.c

#include <t_stddef.h>
#include <t_syslog.h>
#include <stdarg.h>

ソースコードを見る。

関数

void syslog (uint_t prio, const char *format,...)


関数

void syslog ( uint_t  prio,
const char *  format,
  ... 
)

vasyslog.c51 行で定義されています。

参照先 LOG_TYPE_COMMENT, SYSLOG::loginfo, SYSLOG::logtype, syslog(), syslog_wri_log(), と TMAX_LOGINFO.

参照元 _syslog_0(), _syslog_1(), _syslog_2(), _syslog_3(), _syslog_4(), _syslog_5(), _syslog_6(), logtask_main(), logtask_terminate(), main_task(), syslog(), task(), と tex_routine().

00052 {
00053     SYSLOG  syslog;
00054     va_list ap;
00055     uint_t  i;
00056     char    c;
00057     bool_t  lflag;
00058 
00059     syslog.logtype = LOG_TYPE_COMMENT;
00060     syslog.loginfo[0] = (intptr_t) format;
00061     i = 1U;
00062     va_start(ap, format);
00063 
00064     while ((c = *format++) != '\0' && i < TMAX_LOGINFO) {
00065         if (c != '%') {
00066             continue;
00067         }
00068 
00069         lflag = false;
00070         c = *format++;
00071         while ('0' <= c && c <= '9') {
00072             c = *format++;
00073         }
00074         if (c == 'l') {
00075             lflag = true;
00076             c = *format++;
00077         }
00078         switch (c) {
00079         case 'd':
00080             syslog.loginfo[i++] = lflag ? (intptr_t) va_arg(ap, long_t)
00081                                         : (intptr_t) va_arg(ap, int_t);
00082             break;
00083         case 'u':
00084         case 'x':
00085         case 'X':
00086             syslog.loginfo[i++] = lflag ? (intptr_t) va_arg(ap, ulong_t)
00087                                         : (intptr_t) va_arg(ap, uint_t);
00088             break;
00089         case 'p':
00090             syslog.loginfo[i++] = (intptr_t) va_arg(ap, void *);
00091             break;
00092         case 'c':
00093             syslog.loginfo[i++] = (intptr_t) va_arg(ap, int);
00094             break;
00095         case 's':
00096             syslog.loginfo[i++] = (intptr_t) va_arg(ap, const char *);
00097             break;
00098         case '\0':
00099             format--;
00100             break;
00101         default:
00102             break;
00103         }
00104     }
00105     va_end(ap);
00106     (void) syslog_wri_log(prio, &syslog);
00107 }


Copyright © 2008 by Kijineko Inc.

ホームページ制作