Nginx之main初探ngx_init_cycle()(上)

php中文网
发布: 2016-08-08 09:28:47
原创
1582人浏览过

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()
登录后复制

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

Cutout老照片上色
Cutout老照片上色

Cutout.Pro推出的黑白图片上色

Cutout老照片上色 20
查看详情 Cutout老照片上色

注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 int
			struct 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;
	}
登录后复制

程序输出结果:
	4
	8
登录后复制

以上就介绍了nginx之main初探ngx_init_cycle()(上),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号