2012-03-28 54 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

該頭文件包含以下 的#ifndef _LOG_H_ 的#define _LOG_H_ 的#include 「server.h」 /*關閉FD和_try_獲得的/ dev/null的它來代替。 *成功時返回0,失敗時返回-1(在任何情況下fd都關閉) */ int openDevNull(int fd); #define WP()log_error_write(srv,__FILE__,__LINE__,「」); int open_logfile_or_pipe(server * srv,const char * logfile); int log_error_open(server * srv); int log_error_close(server * srv); int log_error_write(server * srv,const char * filename,unsigned int line,const char * fmt,...); int log_error_cycle(server * srv); #endif – 2012-03-28 10:11:27

+0

我不能'看到任何關於它的log_trace。 – 2012-03-28 10:13:53