自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 关于cJSON_Print返回null

    近日开发任务中有用到cjson组件,在调用json文本输出函数 cJSON_Print 时,发现该函数返回NULL,且如果此时去删除构建该json文本的json对象时,还会出现段错误:    几经排查,虽然没有弄明白出现段错误的原因,但是发现了调用cjson插入/删除数组成员函数时需要注意的一个点。    我在代码中使用的json增加数组元素的函数为 cJSON_AddItemToArray ,删除数组元素的函数为 cJSON_DetachItemViaPointer & cJSON_

2021-09-16 10:20:10 1790

原创 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 379

原创 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 751

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除