相同指针与全局变量编译之坑

相同指针陷阱这是一个将yp指针的值加到xp指针两次的函数。voidfun1(int*xp,int*yp){*xp+=*yp;*xp+=*yp;}这个代码表面一看可以优化成这样voidfun1(int*xp,int*yp){*xp+=2**yp;}但是如果yp于xp指针指向的是同一个地址,那么情况就会
c/c++ 2020年11月27日 20次浏览

服务器----分布式锁原理

锁线程锁lock(mutex)资源操作unlock(mutex)进程锁(nginx中accept锁-共享内存+信号量)分布式锁在不同机器的进程的锁分布式锁的实现方案数据库redis,mysqlzookeeper分布式锁有哪些特征互斥性。可重入性,一个进程允许递归获取锁(需要递归释放锁)。锁超时(进程
工具 c/c++ 网络编程 计算机网络 2020年11月22日 23次浏览

多线程的虚假唤醒理解

虚假唤醒在多线程环境中,在竞争资源的时候,有时候拿到了锁,却发现资源没了,这可能就是使用了条件等待产生的一个惊群效应。pthread_cond_signal将所有的pthread_cond_wait线程都唤醒了,但是只有个别线程竞争到了资源,没有竞争资源的线程就是属于虚假唤醒的线程。对于虚假唤醒的线
c/c++ 程序设计 2020年11月17日 48次浏览

字符串匹配sunday算法封装

字符串匹配在工作中,需要用字符串匹配,为了可以快速切换不同的库,编写了这个匹配接口,方便实现不同字符串匹配库的切换.接口封装sunday.h#include<stdio.h>#include<string.h>#include<stdlib.h>#defineKE
工具 c/c++ 2020年11月04日 44次浏览

hyperscan字符串匹配库接口封装

字符串匹配在工作中,需要用字符串匹配,为了可以快速切换不同的库,编写了这个匹配接口,方便实现不同字符串匹配库的切换.接口封装头文件kwmatch.h#ifndef__KWMATCH_H__#define__KWMATCH_H__//controllogprintswitch#defineKW_DEB
工具 c/c++ 2020年11月04日 37次浏览

将rgba图片信息转换为bmp图片文件

将rgba图片信息转换为bmp图片文件#include<stdio.h>#include<windows.h>#pragmapack(1)//BMP文件头(14字节)typedefstruct/****BMPfileheaderstructure****/{unsignedi
工具 c/c++ 2020年11月01日 48次浏览

使用二级指针申请链表

使用二级指针申请链表#include<stdio.h>typedefstructNode_t{intid;structNode*next;}Node;voidmain(){Node*nodeList=NULL;Node*tmp=NULL;fun(&nodeList,10);tmp
c/c++ 2020年09月29日 67次浏览

nginx中的链表遍历

nginx中的链表遍历#include<ngx_list.h>voidmain(){//创建链表ngx_list_t*testlist=ngx_list_create(r->pool,4,sizeof(ngx_str_t));if(testlist==NULL){returnNGX
nginx c/c++ 2020年08月28日 112次浏览

const char *p,char const *p与 char * const p傻傻分不清

口诀变量类型先去掉,const的右边是什么,那么什么就不变。解释比如constchar*p的先去掉类型,那就是const*p,然后const的右边有*p,而p是一个指针,*p是指针的解引用,那就是该指针的解引用内容不变。在比如char*constp,const的右边是p,而p是什么?是一个指针,那说
c/c++ 2020年08月21日 133次浏览

将字符的编码转换为另一种编码

将字符的编码转换为另一种编码intcode_convert(char*from_charset,char*to_charset,char*inbuf,size_tinlen,char*outbuf,size_toutlen){iconv_tcd;//intrc;char**pin=&inbu
c/c++ linux 2020年08月20日 117次浏览