![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
系统
文章平均质量分 71
huohunri2013
喜欢探索新技术。
展开
-
2021-05-21
关于UCS万国码,本来想自己写的,发现了一篇好文,转载之Unicode - UCS - 万国码通用字符集 - UCS(Universal Character Set)首先要说明的是Unicode和UCS并不是完全相同的概念Unicode的实现方式不同于编码方式。一个字符的Unicode编码是确定的。它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。Unicode符号需要字节数不等,从1个字节到4个字节,甚至更多。这里就有个严重的问题,计算机怎么知道三个字节表示一个符号,而不是分别转载 2021-05-21 11:07:52 · 76 阅读 · 0 评论 -
Goland以module方式创建工程
创建工程package mainimport "github.com/gin-gonic/gin"func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "darren", }) }) r.Run() // listen and serve on 0.0.0.0:..原创 2020-12-29 15:14:03 · 156 阅读 · 1 评论 -
struct与字节对齐——深入理解
本来想自己总结一下的,后来看到知乎有大牛写的总结非常好,转载之。https://zhuanlan.zhihu.com/p/210999004————————————————————————————————————————**一句话总结:编译器下,全体变量成员进行边界(地址)对齐!**两句话解释:①编译器,会先让struct结构体内部成员按顺序进行边界(存放地址)对齐,对齐标准是各自变量类型的长度;②然后再让struct结构体进行最后的字节补充(方便下一个变量对齐),对齐标准是结.转载 2020-12-24 17:28:50 · 372 阅读 · 2 评论 -
随笔:进程间描述字fd的传递
描述字的传递,就是将一个进程中的描述字传递到另一个进程中,使得该描述字依然有效。在多进程网络的CS模式下,服务器fork产生的子进程在fork调用返回后,子进程共享父进程的所有打开的描述字。即使在子进程中调用exec函数,所有描述字通常还是保持打开的状态,也就是描述子是跨exec函数的。这也是为什么在exec调用之后的进程里仍然可以调用父进程共享的套接字的原因。但是这种实现并不能解决子进程的描述字传递给父进程的需求,对于无亲缘关系的进程之间传递描述字就更加不可能。遇到这种跨进程通信的问题,一般的原创 2020-12-24 16:35:27 · 766 阅读 · 0 评论 -
迭代服务器与并发服务器
大多数TCP服务器是并发的,大多数UDP服务器是迭代的。如果服务一个客户请求的时间不长,使用迭代服务器没有太大问题,一旦客户请求的时间需要花费很长,不希望整个服务器被单个客户长期占用,而希望同事服务多个客户,就需要选择并发服务器了。迭代服务器程序轮廓int listenfd,connfd;listenfd = socket( ... );bind(listen, ... )转载 2016-04-12 16:10:41 · 1892 阅读 · 0 评论 -
CRT与Windows的关系【转】
CRT原先是指Microsoft开发的C Runtime Library(C语言运行时库),用于操作系统的开发及运行。后来在此基础上开发了C++ Runtime Library,所以现在CRT是指Microsoft开发的C/C++ Runtime Library。在VC的CRT/SRC目录下,可以看到CRT的源码,不仅有C的,也有C++的。 CRT原先的目的就是支持操作系统的运行。因为W转载 2016-05-21 19:39:36 · 412 阅读 · 0 评论 -
10.17 abort function
读了一下abort的源码,里面有内容很不理解,就是在最后第二次调用kill,后来想明白了,因为有可能该进程自己修改了SIGABRT信号的执行函数,所以再次对流进行flush,再次将信号sa_handler 设置成默认执行,再次发送SIGABRT,这样保证abort的健壮性。只能说设计的真TMD好。...原创 2018-09-01 00:59:11 · 133 阅读 · 0 评论 -
gdb工作原理和内核实现
gdb工作原理和内核实现 Tools 2013-05-19 gdb主要功能的实现依赖于一个系统函数ptrace,通过man手册可以了解到,ptrace可以让父进程观察和控制其子进程的检查、执行,改变其寄存器和内存的内容,主要应用于打断点(也是gdb的主要功能)和打印系统调用轨迹。一、ptrace函数函数原型如下:#include <sys/ptrace.h>l...转载 2018-10-15 17:45:21 · 316 阅读 · 0 评论