Nginx之main初探ngx_init_cycle()(上)

Nginx之main初探ngx_init_cycle()(上)

由于ngx_init_cycle()函数非常庞大,这里只给出前400+行的函数调用关系,后400+将在后面的文章中给出。

–>ngx_init_cycle(&init_cycle)–>ngx_timezone_update()–>time()–>localtime()注1:–>ngx_timeofday()–>ngx_time_update()–>ngx_gettimeofday() — gettimeofday()–>ngx_gmtime()–>ngx_localtime()–>ngx_memory_barrier()–>ngx_increase_pipe_generation()–>ngx_create_pool()–>ngx_memalign() — ngx_alloc(size, log)–>ngx_pcalloc()–>ngx_palloc()–>ngx_align_ptr()注2:–>ngx_palloc_block()–>ngx_memalign()–>ngx_align_ptr()–>ngx_palloc_large()–>ngx_alloc()–>malloc()–>ngx_palloc()–>ngx_memzero()–>memset()–>ngx_list_init()–>ngx_palloc()–>ngx_queue_init()–>ngx_strlen() — strlen()–>ngx_pnalloc()–>ngx_palloc_block()–>ngx_palloc_large()–>ngx_strlow()–>ngx_tolower() — ((c >= 'A' && c <= 'Z') ? (c | 0x20) : c)–>ngx_array_create()–>ngx_palloc()–>ngx_array_init()–>ngx_palloc()–>ngx_conf_param()–>ngx_memzero()–>ngx_conf_parse()–>ngx_conf_parse()–>ngx_open_file() — open()–>ngx_fd_info() — fstat()–>ngx_alloc()–>ngx_conf_read_token()–>ngx_file_size()–>ngx_memmove() — memmove()–>ngx_read_file() — read()–>ngx_write_console() — ngx_write_fd()–> write()–>ngx_array_push()–>ngx_conf_handler()–>ngx_show_dso_directives()–>ngx_get_conf()–>ngx_is_dynamic_module()–>ngx_get_conf()–>ngx_test_lockfile()–>ngx_open_file()–>ngx_close_file()–>ngx_delete_file()–>ngx_create_paths()–>ngx_create_dir() — mkdir()–>ngx_file_info()–>ngx_log_open_default()–>ngx_conf_open_file()

下面是陌生函数的用法和小知识点:

注1:time()与localtime()函数不是Nginx自己实现的,是库函数。其用法如下/** * filename: test_localtime.c * description: used to see the usage of function localtime() * date:2015-03-06 * author:HowardKing * version:1.0 */#include <stdio.h>#include <stdlib.h>#include <time.h>int main(void){time_t timer; // time_t is long intstruct tm *tblock;time(NULL);tblock = localtime(&timer);printf("Local time is: %s", asctime(tblock));return 0;}程序输出结果:<span style="white-space:pre"></span>Local time is: Fri Jul 31 05:00:00 4461676注2:C语言中long类型是与机器字长相对应的,,而int型来说一般都是4字节。/** * filename: test_unsigned_long.c * description: find out the size of type long * date:20150306 * author:HowardKing * version:v1.0 */#include <stdio.h>#include <stdlib.h>int main(void){int ii = 100;unsigned long ll = 100;printf("%d\n", sizeof(ii));printf("%d\n", sizeof(ll));return 0;}程序输出结果:48

大理的洱海形如人耳,风平浪静时,

Nginx之main初探ngx_init_cycle()(上)

相关文章:

你感兴趣的文章:

标签云: