随笔分类 - C\C++
摘要:前段时间帮忙定位个问题。docker容器故障恢复后,其中的keepalived进程始终无法启动,也看不到Keepalived的日志。 strace 查看系统调用之后,发现了原因所在 1 socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3 2 connec
阅读全文
摘要:此文为指针系列第二篇: C语言精要总结-指针系列(一) C语言精要总结-指针系列(二) 指针运算 前面提到过指针的解引用运算,除此之外,指针还能进行部分算数运算、关系运算 指针能进行的有意义的算术运算包括加减法运算,但不包括乘除运算。并且运算存在诸多限制。 加法运算 指针加法运算只适合指针与整数,不
阅读全文
摘要:考虑到指针内容繁多,这里将指针作为一个系列,从简入繁,带着没有研究过指针的朋友,一点一点深挖并掌握这C语言的精华。初步计划如下 此文为指针系列第一篇: C语言精要总结-指针系列(一) 内存与地址 我们可以把内存看做一排连续的房间,每个房间(字节空间)都有一个房间号,房间号就是这个房间的地址,而且每个
阅读全文
摘要:计算机读取或者写入存储器地址时,一般以字(因系统而异,32位系统为4个字节)大小(N)的块来执行操作。数据对齐就是将数据存储区的首地址对齐字大小(N)的某个整数倍地址。为了对齐数据,有时需要在物理上相邻的两个数据之间保留或者插入一些无意义的字节。内存对齐本事编译器考虑是事情,但在C、C++语言中,可以人为修改对齐方式。
阅读全文
摘要:RPC即远程过程调用,适用于集群管理,集群节点就是RPCServer,而我们发起远程调用的web服务器就是RPCClient。所以是少数rpcClient(可能一个)对多个RPCServer(集群节点)。今天讲述的RPC开发希望实现这样一个效果,在RPCClient上(也就是web服务器)执行一条s...
阅读全文
摘要:编写test2.c编译成可执行文件gcc test2.c -g -o test2gdb test2进入gdb调试run命令run命令格式run 其中run可以简写成r,gdb中大部分指令可以简写。在gdb中执行run lvyahui blog可以看到输出再次运行run可以不需要再传递参数,它会使用最...
阅读全文
摘要:源代码文件main3.c 1 #include 2 #include "static_lib.h" 3 #include "fun.h" 4 5 int main(void){ 6 int a=2,b=3; 7 printf("add:%d sub:%d mul:%d div:%...
阅读全文
摘要:升级前提源码编译需要至少要有一个可用的gcc编译器。可以用过yum自动安装或者手动下载rpm包安装。通过yum可以看到至少需要下面这些安装包,所以可以到许多rpm package站点中搜索下载相应的rpm包,不过版本要搞对了,这个yum搜出来的版本是针对4.4.7的。所以需要什么版本gcc就寻找什么...
阅读全文
摘要:做开发快3年了,在linux下编译安装软件算是家常便饭了。就拿gcc来说,都有不下10次了,可基本每次都会碰到些奇奇怪怪的问题。看来还是像vs、codeblocks这样的ide把人弄蠢了。便下定决心一定要好好学习下如何在linux下纯手工gcc编译c项目。今天学了2点,一个是库文件处理,另一个是ma...
阅读全文
摘要:待解决的问题最近在做一个服务器集群管理的web项目,需要处理一些极其耗时的操作,比如磁盘格式化分区。对于这个需求,最开始的想法是,为了让节点上的rpc(远程过程调用)service端尽可能简单(简单到只需要popen执行一条指令即可,有时间我再专门写一篇博客讲讲这个项目的rpc是如何实现的),我们选...
阅读全文
摘要:关键字篇volatile关键字鲜为人知的关键字之一volatile,表示变量是'易变的',之所以会有这个关键字,主要是消除编译优化带来的一些问题,看下面的代码1 int a = 8;2 int b = a;3 int c = a;编译器认为,上面的第2句代码与第三句代码之间,没有存在对a赋值的语句,...
阅读全文
摘要:最近想回过头来看看以前写的一些代码,可叹为何刚进大学的时候不知道要养成写博客的好习惯。现在好多东西都没有做记录,后面也没再遇到相同的问题,忘的都差不多了。只能勉强整理了下面写的一些代码,这些代码有的有参考别人的代码,但都是自己曾经一点点敲的,挂出来,虽然很基础,但希望能对别人有帮助。 链表 链表是一
阅读全文
摘要:Time Limit:1 SecMemory Limit:128 MBDescription输入一些仅由小写字母组成的单词。你的任务是统计有多少个单词是“酷”的,即每种字母出现的次数都不同。比如ada是酷的,因为a出现2次,d出现1次,而1和2不同。再比如,banana也是酷的,因为a出现3次,n出...
阅读全文
摘要:存储文法的数据结构 1 typedef struct P{ 2 char key; // 产生式左部 3 char * value [16]; // 产生式右部 4 int count; // 几组规则 5 }P; 6 typedef ...
阅读全文
摘要:太难的搞不过,只能来写简单的了POJ2524无所不在的宗教世界上宗教何其多。假设你对自己学校的学生总共有多少种宗教信仰很感兴趣。学校有n个学生,但是你不能直接问学生的信仰,不然他会感到很不舒服的。有另外一个方法是问m对同学,是否信仰同一宗教。根据这些数据,相信聪明的你是能够计算学校最多有多少种宗教信...
阅读全文
摘要:拓扑排序的DFS算法输入:一个有向图输出:顶点的拓扑序列具体流程:(1) 调用DFS算法计算每一个顶点v的遍历完成时间f[v](2) 当一个顶点完成遍历时,将该顶点放到一个链表的最前面(3) 返回链表(按照链表次序输出顶点即为顶点的拓扑序列)样例输入5 50 1 10 2 11 2 12 3 14 ...
阅读全文
摘要:输入:一个有向图输出:顶点的拓扑序列具体流程:(1) 将所有入度为0的点加入队列(2) 每次取出队首顶点(3) 删除其连出的边,检查是否有新的入度为0的顶点,有则加入队列(4) 重复(2)直到队列为空样例输入5 50 1 10 2 11 2 12 3 14 2 1样例输出0 4 1 2 3 1 #i...
阅读全文
摘要:DNA SortingTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 83442Accepted: 33584DescriptionOne measure of ``unsortedness'' in a sequence is th...
阅读全文
摘要:DescriptionFarmer John has been elected mayor of his town! One of his campaign promises was to bring internet connectivity to all farms in the area. H...
阅读全文
摘要:马的遍历问题在n*m的棋盘中,马只能走“日” 字。马从位置(x,y)处出发,把棋盘的每一格都走一次,且只走一次。找出所有路径。问题解的搜索空间?棋盘的规模是n*m,是指行有n条边,列有m条边。马在棋盘的点上走,所以搜索空间是整个棋盘上的n*m个点。用n*m的二维数组记录马行走的过程,初值为0表示未经...
阅读全文