2012-03-28 14 views
0

私はプログラミングの知識のない、lighttpdの全く新しい学生です。私は単純な "Hello world"プラグインの構築方法を理解しようとしています。私は本からコードを見つけました。コードは次のとおりです。混乱したlog_trace関数

#includes "base.h" 
#includes "log.h" 
#includes "plugin.h" 
#ifdef HAVE_CONFIG_H 
#includes "config.h" 
#endif 

typedef struct { PLUGIN_DATA; /* no config */ } plugin_data; 

INIT_FUNC(mod_helloworld_init) { 
    plugin_data *p; 
    UNUSED(srv); 
    p = calloc(1, sizeof(*p)); 
    log_trace("Hello, World!"); 
    return p; 
} 

FREE_FUNC(mod_helloworld_free) { 
    plugin_data *p = p_d; 
    UNUSED(srv); 
    if (p) free(p); 
    return HANDLER_GO_ON; 
} 

int mod_helloworld_plugin_init(plugin *p) { 
    p->version = LIGHTTPD_VERSION_ID; 
    p->name = buffer_init_string("helloworld"); 
    p->init = mod_helloworld_init; 
    p->cleanup = mod_helloworld_free; 
    p->data = NULL; 
    return 0; 
} 

上記のコードでは、「log_trace」という関数がどのように機能しているかわかりません。私はそれがC++のあらかじめ定義された関数ではないことを知っています。それはプログラマ自身が書かなければならないようです。どのように機能しているのか説明できますか?

答えて

0

log_traceおそらく関数は、log.hヘッダーファイルで宣言または定義されています。詳細については、そのヘッダーファイルを参照してください。ファイルヘッダ

+0

は_LOG_H_ の#define _LOG_H_ の#include "server.h" /*代わりにそれのためには/ dev/nullのを得るためにFDを閉じると_try_ #ifndefの次 が含まれています。 *成功した場合は0を返し、失敗した場合は-1を返します(fdはすべてのケースで閉じられます)。 */ int openDevNull(int fd); #define WP()log_error_write(srv、__FILE__、__LINE__、 ""); int open_logfile_or_pipe(サーバ* srv、const char * logfile); int log_error_open(server * srv); int log_error_close(server * srv); int log_error_write(サーバ* srv、const char * filename、符号なしint行、const char * fmt、...); int log_error_cycle(server * srv); #endif –

+0

私はそれにlog_traceについては何も見ません。 –