
s2: linux源码
涛歌依旧
毕业后就职于华为和腾讯
展开
-
漫话Redis源码之九十二
void scan_strings_callback(RedisModuleCtx *ctx, RedisModuleString* keyname, RedisModuleKey* key, void *privdata) { scan_strings_pd* pd = privdata; int was_opened = 0; if (!key) { key = RedisModule_OpenKey(ctx, keyname, REDISMODULE_...原创 2022-03-07 23:43:54 · 432 阅读 · 0 评论 -
漫话Redis源码之九十
/* This module emulates a linked list for lazyfree testing of modules, which is a simplified version of 'hellotype.c' */#include "redismodule.h"#include <stdio.h>#include <stdlib.h>#include <ctype.h>#include <string.h>...原创 2022-02-27 22:05:39 · 466 阅读 · 0 评论 -
#define likely(x) __builtin_expect(!!(x), 1) 性能测试
看linux源码或者一些优秀组件的源码,经常碰到likely和unlikely, 其实很简单,无非就是显式告诉编译器怎么去优化。有兴趣的话,可以看看对应的汇编。下面,我们来实际测试一下likely/unlikely的性能优化效果:#include <stdio.h>#include<sys/time.h> #define likely(x) __bu...原创 2019-11-02 20:37:55 · 4095 阅读 · 9 评论 -
从va_list、va_start、va_arg、va_end想到了vsprintf的源码
在前面的博文中, 我彻谈了从va_list、va_start、va_arg、va_end的用法, 但是, 当我看到某个程序后, 非常纳闷, 于是迫不及待得想知道vsprintf的实现。 在我的第一印象中, vsprintf貌似和vs有关, 也就是和微软有关, 所以懒得去管微软那些东东, 其实, vsprintf和微软没有毛关系, linux也有这个东东,而v是variable的缩原创 2016-04-11 23:30:01 · 8877 阅读 · 1 评论 -
Linux select 文件描述符1024限制------此处容易导致core dump
转载地址: http://blog.youkuaiyun.com/sxtobj/article/details/53170782最近系统出现宕机的情况,分析core文件,所有的线程都在select处。最后怀疑是文件描述符超过了1024。但是想到Apache也是采用select的io模型。所以还是很不理解。查看了Linux的内核源码linux-2.6.32。static __inli转载 2017-06-25 12:58:45 · 8816 阅读 · 1 评论 -
谈谈误解------为什么select支持的fd数量有限制,而poll/epoll等支持的fd数量没有限制?
很多书本和网上都说: poll/epoll比select好的地方之一在于:select支持的最大fd数量有限制,而poll/epoll等支持的最大fd数量没有限制。 这句话本身没有太多问题, 但我纳闷, 一般来说, 单个进程(在一个典型的linux机器上, 比如我的机器就是这样)能打开的最大fd数据为1024, 你说select能最多能支持1024个fd, 我理解。 但你说poll/epoll原创 2017-06-25 17:21:49 · 12956 阅读 · 4 评论 -
TCP SACK panic漏洞的解释和思考
转载地址:https://blog.youkuaiyun.com/dog250/article/details/93397367最近几天一直在和CVE-2019-11477 SACK panic漏洞进行纠缠,挺有意思的。细节就不多说了,给出几个链接自己看吧:https://access.redhat.com/security/vulnerabilities/tcpsackhttps:...转载 2019-06-30 11:25:55 · 3616 阅读 · 3 评论