- 博客(3)
- 收藏
- 关注
原创 关于cJSON_Print返回null
近日开发任务中有用到cjson组件,在调用json文本输出函数 cJSON_Print 时,发现该函数返回NULL,且如果此时去删除构建该json文本的json对象时,还会出现段错误: 几经排查,虽然没有弄明白出现段错误的原因,但是发现了调用cjson插入/删除数组成员函数时需要注意的一个点。 我在代码中使用的json增加数组元素的函数为 cJSON_AddItemToArray ,删除数组元素的函数为 cJSON_DetachItemViaPointer & cJSON_
2021-09-16 10:20:10
2143
原创 nginx如何调用 socket() bind() listen() accept()等网络编程接口(二)
上篇文章结束时留下了几个问题,这些问题的答案也是本文想着重介绍的——nginx 的惊群问题以及nginx事件模块。 跳出 ngx_init_cycle 函数,继续阅读 nginx main函数的主流程,我们发现直到 main 函数调用 ngx_master_process_cycle 函数 、worker 进程进入主循环都没有发现调用 accept 函数的踪迹。worker 进程的主循环则一直在处理各种信号和读写事件以及定时事件。那么 accept 到底在哪里被调用的呢? 要回答这个问题就需要了
2020-11-28 11:16:50
459
原创 nginx如何调用 socket() bind() listen() accept()等网络编程接口(一)
学习过Linux网络编程的小伙伴大多知道,一个基于Linux系统的TCP服务器程序通常都需要调用 socket,bind,listen,accept以及read/write等函数。对于有并发要求的服务器程序,还会考虑使用IO多路复用(select、poll、epoll)接口以及多进程或者多线程的函数接口。有一定网络编程经验的同学可以很熟练的使用这些接口实现一个支持并发处理的Linux TCP服务器程序。nginx同样具备TCP服务器的功能,并且这也是它最主要的功能,nginx的两大应用层框架,http和ma
2020-11-28 11:15:44
843
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人