- 博客(23)
- 收藏
- 关注
原创 protobuf序列化
Protocol Buffers (protobuf) 是一种轻量级、高效的数据序列化格式,由 Google 开发。它被设计用于高效地在不同平台和语言之间进行数据通信和存储。protobuf 提供了一种结构化的方式来定义数据模型,并生成用于序列化和反序列化数据的代码。protobuf是一种比json和xml等序列化工具更加轻量和高效的结构化数据存储格式。
2023-12-26 11:52:37 975
原创 Linux Programmer‘s Manual
在终端中输入命令”man” 加上你想要查询的命令或程序,例如:”man ls”。按下回车键后,系统会在屏幕上显示出该命令的手册页面。
2023-12-17 22:21:03 357 1
原创 epoll使用详解
1. 每次调用select,都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大;而epoll保证了每个fd在整个过程中只会拷贝一次。2. 每次调用select都需要在内核遍历传递进来的所有fd;而epoll只需要轮询一次fd集合,同时查看就绪链表中有没有就绪的fd就可以了。3. 内核仅会将有 IO 事件的文件描述符返回给用户,用户也无需遍历整个文件描述符集合。4. 没有文件描述符1024的限制(poll和epoll都是)
2023-12-17 22:15:46 351 1
原创 IO多路复用之select、poll、epoll
epoll是Linux目前大规模网络并发程序开发的首选模型。在绝大多数情况下性能远超select和poll。目前流行的高性能web服务器Nginx正式依赖于epoll提供的高效网络套接字轮询服务。但是,在并发连接不高的情况下,多线程+阻塞I/O方式可能性能更好。
2023-12-07 15:06:22 914 1
原创 fprintf 和 sprintf 的用法和区别
输出目标不同:`fprintf` 将格式化数据输出到文件流,而 `sprintf` 将格式化数据写入到字符串中。-参数类型不同:`fprintf` 的第一个参数是文件流指针,而 `sprintf` 的第一个参数是目标字符串的指针。
2023-11-21 15:01:42 174
原创 理解 char*、char** 和 char*[] 的区别
3. `char*[]`:`char*[]` 是一个字符串指针数组,也称为 C 字符串数组。它是一个一级指针数组,每个元素都是一个 `char*` 类型的指针,指向一个字符串。2. `char**`:`char**` 是一个指向指针的指针,也称为指向 C 字符串的指针数组。1. `char*`:`char*` 是一个指向字符的指针,也称为 C 字符串。需要注意的是,在 C 语言中,`char*[]` 和 `char**` 在某些上下文中可以互换使用,但它们的语义和用法略有不同。以上两种写法效果等同。
2023-11-21 11:43:59 572
原创 C++ 1001 害死人不偿命的(3n+1)猜想
1001 害死人不偿命的(3n+1)猜想。卡拉兹(Callatz)猜想:对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……
2023-02-15 22:13:54 118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人