C/C++
文章平均质量分 82
zomoe
我只能给你一间小小的阁楼,一扇朝北的窗,让你望见星斗。
展开
-
关于计算字节位为1的一个问题
<!--p {margin-bottom:0.21cm; direction:ltr; color:rgb(0,0,0); text-align:justify}p.western {font-family:"Times New Roman",serif; font-size:10pt}p.cjk {font-family:"宋体","方正书宋_GBK";原创 2013-04-07 21:33:46 · 2081 阅读 · 0 评论 -
关于strace的一点东西
好久没写博客了,感觉有点惭愧,觉得自己也应该静下心来利用自己可分配的时间去提升自己. 虽然最近在看一些Python的东西,可是觉得自己还是不能忘记本行啊,Linux C的一些东西必须一直好好温习. 不废话,今天打算写一个简单的东西, strace , 应该都对它或多或少的知道一些.很多时候除了core dump, backtrace的方式去排查程序的问题外, str原创 2014-07-19 11:40:59 · 2028 阅读 · 2 评论 -
Something about "extern inline " ?
今天再看一段代码的时候看到了extern inline定义,当时没感觉,回过神来后觉得好像哪里不对。自己写代码经常是static inline,突然看到这个在自己看来的新东西而对大牛来说只是司空见惯的小菜时,我该哭还是笑嘞!!(还是太水的原因。)我们还是先来说说static inline,我们都知道对于static声明,当我们同时编译多个文件时,所有未加static前缀的全局变量和函数原创 2014-03-23 00:13:04 · 1558 阅读 · 0 评论 -
说说循环缓冲区(Ring Buffer)
关于循环缓冲区(Circular Buffer)的概念,其实来自于Linux内核(Maybe),是为解决某些特殊情况下的竞争问题提供了一种免锁的方法。这种特殊的情况就是当生产者和消费者都只有一个,而在其它情况下使用它也是必须要加锁的。对应在Linux内核中有对它的定义:struct kfifo { unsigned char *buffer; unsigne原创 2013-11-28 21:04:54 · 14608 阅读 · 0 评论 -
浅谈server端基本的设计模型及部分问题
用了大概一个半月的时间都在做OS相关的实验感觉操作系统的东西自己还是了解适可而止,当然OS中包含了太多的设计模式以及底层相关的东西都会对自己在server端处理起到指引的作用,但是目前自己还是还是感觉自己还是对server端的处理比较感兴趣,固不再废话,进入正题--server端基本的设计模式。 [注]:所有东西基于Linux环境,并且部分设计模型在Linux下有良好的表现,不一定在Wind原创 2013-11-15 20:16:43 · 2965 阅读 · 3 评论 -
用Linux C的互斥锁机制解决哲学家就餐问题(简单实现)
在1971年,著名的计算机科学家艾兹格·迪科斯彻提出了一个同步问题,即假设有五台计算机都试图访问五份共享的磁带驱动器。稍后,这个问题被托尼·霍尔重新表述为哲学家就餐问题。这个问题可以用来解释死锁和资源耗尽。 「哲学家就餐说明」:有五个哲学家共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个筷子,他们的生活方式是交替进行思考和就餐,通常,一个哲学家饥饿时就会试图去取用其左右最靠近自己的筷原创 2013-09-29 18:50:30 · 6436 阅读 · 3 评论 -
记windows下简单的监控软件开发流程
最近这三个星期,参加了学校组织的实训,做的全是Windows下的东西,实际编码时间就是一周左右。哎,略扯。虽然自己是搞Linux的,但是其实有时候了解一下windows也算是不错了。毕竟了解多了不算坏事。不费话了,下面我们避开前期扯淡的LOGO First界面 Second:【一】.软件功能实现对局域网内客户机的进程管理,以及硬件信息、操作版本和网络原创 2013-09-06 22:13:20 · 3006 阅读 · 0 评论 -
函数指针数组做命令解析
今天偶然看到欢神的FTP代码,做命令解析用的是函数指针数组来做,这样可以省下一大堆的strcmp函数,觉得非常高端,就想记录下来,同时组内大一同学也在做这些东西,我觉得可以借鉴一下这种处理命令的方式,看一段自己写的测试函数吧,看完后应该就懂我再说什么了:#include #include #include #include char cmd[5][15]={"ls","search",原创 2013-08-14 17:45:31 · 1325 阅读 · 0 评论 -
用条件变量和互斥锁去管理线程池
今天终于克服众多Bug 搞出了一个简单的线程池的应用,在初始化线程池之后,可以实现向其中投放任务,多个线程完成大于线程数目的任务量,当然每个任务只能一次被一个线程执行。当一个线程完成一个任务后回去检测当前的剩余任务,从而继续执行剩余任务。大体的内容实现就是这样,下面仔细说一下整个流程问题。 首先谈到线程池,顾名思义我们需要预先建立多个线程,但是怎么去管理这些线程才是重点。下面的结构可以作为线原创 2013-08-08 22:56:14 · 2675 阅读 · 6 评论 -
尝试探索基于Linux C的网卡抓包过程
其实想探究网卡抓包问题已经有好久了。前几天找了时间算是基本上了解了那部分的一些基本东西,在这里只是赘述罢了。抓包首先便要知道经过网卡的数据其实都是通过底层的链路层(MAC),在Linux系统中我们获取网卡的数据流量其实是直接从链路层收发数据帧。至于如何进行TCP/UDP连接本文就不再赘述(之前的一段关于web server的程序已经大概说明),直接从最关键的原始套接字( raw socket)原创 2013-04-11 13:32:04 · 5073 阅读 · 0 评论 -
C++ 下基于迭代器适配器和范型算法的排序
`「First」这里准备展示的是一个C++中利用库实现的范型排序,以标准库实例化迭代器适配器,包含流迭代器(输入、输出迭代器的形式)。 `「Second」基本思想:将数据流定向(用STL:中的copy()实现定向输入流到指定的容器)到标准输入流中,用STL标准库中的sort()进行范型排序,最后将容器中的数据流再copy()至标准输出流中。 `「Third」代码(以下针对i原创 2013-05-27 17:00:19 · 1477 阅读 · 0 评论 -
简单实现的几个C语言<string>库函数
「」 库函数算是C语言中较为常用的库了,这里简单实现了几个库函数。实现肯定会存在部分漏洞。 0.「预编译」若要将以下函数实现封装为一个库,便需要将一下每一个函数实现写为一个 .h 文件,并加上这个预编译.h文件#ifndef _M_STRING#define _M_STRING#ifndef _YVALS#include#endif#ifndef NUL原创 2013-05-25 16:09:40 · 1504 阅读 · 0 评论 -
VC环境下简单的贪吃蛇
下午真无聊的不知道干什么了,翻翻自己以前写的代码,偶然看到大一时写的这个简单的贪吃蛇,自己玩了几把后还是决定发到博客吧。(实在无聊,打发时间) 注:完全基于VC++6.0环境,不支持Linux 下terminal中运行。并且代码风格基本没有,写的十分扯,一大堆代码都在main()函数中,其中用了switch来搞了两关,一个是撞墙over,另一个当然可以穿墙了。代码复用就别提了,两关由于十原创 2013-05-25 15:29:06 · 1566 阅读 · 0 评论 -
几个基本排序算法总结( C语言实现 )
最近由于长时间没写过基本的排序算法,结果导致只知道大概思想便不知怎么去编写这些算法的代码了,所以借着一下午的时间把基本的几个排序算法的代码写了一边,算是对它的复习吧! 一 .「冒泡排序」: 冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数原创 2013-05-08 20:15:10 · 2184 阅读 · 0 评论 -
linux下 简单学习epoll处理海量链接
最近在 看一些关于linux C 服务器编程方面的东西,随及就涉及到了大量连接的处理的问题。我 们知道在linux下我们一般用tcp/ip协议去写简单的C/S模型的代码,经常会用到select()函数。它是用来确定一个或多个套接口状态的函数。对每一个套接口,调用者可查询它的可读性、可写性及错误状态信息。用fd_set结构(可以google)来表示一组等待检查的套接口,可以用来实现多路复用的I/O模原创 2013-04-27 20:53:57 · 2375 阅读 · 1 评论 -
关于C++处理1+2+......+n的新思路
对于前n项累加求和的问题,如果要求我们不能使用for . while .switch .goto.if .else.case (A>B?a:b)等一切循环语句和判断语句#include class Temp{public: Temp() { ++N; Sum += N; } static voi原创 2013-04-09 12:49:01 · 1802 阅读 · 0 评论 -
TLV-简单的数据传输协议
有段时间没有写博客了,这段期间要说也够忙的(其实也没忙到哪去),从3月底到5月初这段期间一直在找暑期实习,幸运的是自己算是找到了自己希望的,从开始纠结TX,到后来确定,以及又拿到阿里的实习机会,这段过程真是够虐心的。不过自己还是选择了深圳,也许一开始自己想的就是这样,也许是阿里巴巴的通知有点晚,也许是自己觉得毁约去杭州有点不好,不管怎样,感谢阿里巴巴给的机会,也特别感谢六一、淘宝褚霸两位阿里大牛没原创 2014-05-29 22:40:11 · 19755 阅读 · 3 评论