
linux
zhanglehes
这个作者很懒,什么都没留下…
展开
-
linux内核设计与实现读书笔记 第一章
目录linux内核设计与实现读书笔记 第一章广义上的操作系统Linux kernel做哪些事情内核所在的位置CPU所处的三种状态广义上的操作系统linux kernel c library(system call,other utilities) 系统工具(vi, gdb) 系统进程(服务)(ssh, shell)Linux kernel做哪些事情响应中断请求(interrupt handler) 通过调度器(scheduler)分享cpu占用 内存管..原创 2020-10-28 17:34:23 · 157 阅读 · 0 评论 -
C++ attribute[fallthrough]
fallthrough在switch语句中,不同case间如果有statement(如函数调用,赋值等操作),但没有break语句,很有可能是coder的一个bug。在C++17中,部分compiler会提示用户,给出相应的warning信息。但如果是coder故意而为,又不希望出现该warning信息,可以使用该关键词提示compiler。具体用法请见下面的例子:#include &l...原创 2020-03-04 20:47:05 · 4256 阅读 · 2 评论 -
linux alignment总结
c++中的内存对齐(alignment)不同的类型(eg. char, int, double)等有不同的对齐要求,在我的电脑上的值如下:类型 alignof(type)返回值 char 1 int 4 double 8 也就是int类型的变量,其地址的值一定是4的整数倍;同理double类型变量的地址,其值要求是8的整数倍。对于struct...原创 2020-03-04 17:39:06 · 675 阅读 · 1 评论 -
清空linux cache的方法
之前的一个项目 ,需要测试读取dax原创 2014-09-12 17:51:31 · 567 阅读 · 0 评论 -
socket read浅析
使用read函数去读取socket生成的file handle是个什么原理呢?今天研究了一下。代码的逻辑就是server段发出当前时间的字符串,client端去接收该字符串。Server端的部分代码如下 for ( ; ; ) { connfd = accept(listenfd, (struct sockaddr *) NULL, NULL);原创 2014-12-21 15:17:45 · 1749 阅读 · 0 评论 -
errno之我见
Errno能帮我们找到系统函数的错误信息。比如open函数,如果正常返回时,其返回值是一个非负的整数。异常时会返回-1,同时该系统函数会设置errno的值,让我们可以了解错误的原因。 Errno的正确用法是,首先要明确系统函数调用异常(比如返回-1或NULL),然后再去判断errno的值。我们不能直接去判断errno的值来断定系统函数调用是否发生了一场。因为errno值是不会被清零,它只是原创 2014-12-23 11:36:58 · 682 阅读 · 0 评论 -
一种分布式框架设计(三)
本文讨论在分布式框架中使用到的两个数据结构。为了实现高性能,这两个数据结构都是无锁的。第一个数据结构存储的是客户端发过来的socket。由于我们的框架只有一个线程接受用户的请求,所以很容易对每一个socket创建一个unique number(稍候我们再来看unique number包含了哪些信息)。框架中有一个线程专门来做清理工作,同时关闭没有返回给客户端的socket。最后框架中有多个线程原创 2015-03-09 17:52:41 · 846 阅读 · 0 评论