问题 如图,某日志文件 loop.log 正在被进程 log_server 不断写入。 其对应代码大致如下: log_server.c 1 2 3 4 5 6 7 8 9 int main() { FILE* fp = fopen("loop.log", "a+"); const char* content = "A test sentence\n"; for
GFlags使用
GFlags GFlags 是 Google 开源的一个命令行 flag 库。与 getopt 之类不同,flag 的定义可以散布在各个源码中,而不用放在一起。一个源码文件可以定义一些它自己的flag,链
Go 语言入门
Golang 本文也并非 Go 语言基础语法的全部罗列,只是摘录一些独特特性。 变量 指针 1 var p *int // 指针默认值nil 数组 1 2 3 4 5 6 7 8 9
Win10+VS2017配置OpenGL开发环境(GLFW+GLAD)
GLFW GLFW 是一个专门针对 OpenGL 的 C 语言库,它允许用户创建 OpenGL 上下文并显示窗口,它提供了一些渲染物体所需的最低限度的接口。其用来代替之前的 GLUT 库。 配置步骤 &
2D凸包问题
MathJax.Hub.Config({ tex2jax: { inlineMath: [ ['$','$'], ["\\(","\\)"] ], processEscapes: true } }); 凸包 凸包(Convex Hull)是一个计算几何(图形学)中的概念。点集Q的凸包是指一个最小凸
TCP 网络编程三部曲
SO_REUSEADDR 允许 TCP server crash/kill 后复用端口,立即重启。 传统的 fork-per-connection 模型需要使用,fork 出的子进程后,父进程的 listen 退出
如何正确关闭TCP连接
问题 在使用 TCP 网络编程时,有时发送了一些数据后,要传输的数据的最后几 kb,有时是几 Mb 没有到达。
三种I/O多路复用模型
I/O多路复用 常见的 I/O 模型有 5 种: 阻塞 I/O 非阻塞 I/O I/O复用 信号驱动 I/O 异步 I/O 其中,I/O 复用是
POSIX thread
《APUE》这本书算是个字典了,本文算是对 pthread 的一些总结,主要是对原书中几段代码的解释说明,在读代码中记录知识点,技术
C++ 对象模型
本文是看《深度探索 C++ 对象模型》这本书后的一些总结,并非单纯的摘录,而是结合相关博客和自己的理解所写的心得,有一定参考
stringstream 类型转换
sprintf() 使用stdio.h的sprintf()可以实现数据的类型转换。 1 2 3 4 5 6 char s[5]; memset(s, 0, sizeof(s)); double d = 3.14; sprintf(s, "%f", d); cout << s << endl; // print "3.140000"
内存问题
【转】应用 Valgrind 发现 Linux 程序的内存问题
链表排序
链表排序 在学习STL中的双向链表std::list时,被它的sort()函数惊艳到,发现《STL源码剖析》一书中对该
红黑树删除节点
红黑树 红黑树是一种自平衡的二叉查找树(BST),可在O(logN)时间内完成查找、插入、删除等操作。 &e
Effective C++ 笔记
条款2:尽量以 const,enum,inline 替换 #define 对于单纯常量,尽量以const对象或enum替换#define。 enum是一个右值,无