- 博客(12)
- 收藏
- 关注
原创 我所用到的Linux命令
记录日常工作中用到的Linux命令:grep,awk,find,sed,tar,zip,hexdump,tcpdump grep 使用grep命令从一大串输出或者文件中获取自己想要的行。因此使用grep需要指定数据源和匹配条件(你想要的行的特征)。 如何指定数据源?最简单的方式就是最后一个参数指定某个文件!当然,与大多数GNU命令一样,grep可以从标准输入中获取数据,这意味着可以将
2017-09-23 10:25:45
295
原创 Remind-You Part3. Python-Sqlite记录数据
sqlite3 内容1. 将Part2中接收到的客户端请求单词,存入sqlite数据库中。2. 将主程序打包成命令remind_you效果将rpm包安装后,执行remind_you启动主进程。使用ps命令,可以看到目前有两个进程,第一个是主进程,第二个是dict_plugin的工作进程。 进程信息 使用day2中的客户端程序save_word保存单词信息 客户端命令 我们直接代开数据库文件(/et
2017-07-23 23:02:51
338
原创 Remind-You Part2. setup.py打包代码, socket通讯
插线板的英文是socket噢!!! 内容 完成dict plugin的服务端启动socket监听 将Project使用setuptools进行打包 生成客户端程序save_word 使用argparse解析命令行参数 仓库代码中的day2分支 https://github.com/bymzy/remind-you/tree/day2 效果 使用python setup.py bdist_rp
2017-07-23 23:02:49
477
原创 编程的意义何在?
现阶段,编程作为我的工作,每天都在思考着如何解决问题。但是心中渐渐有一种想法,编程在未来的10年20年内,将会成为每个现代人必备的技能。就像用键盘打字一样,放到90年代,没几个人会。但是到了当下,几乎每个现代年轻人都会。 编程在未来会逐步走向日常生活中。 突然看到一个美国前总统奥巴马的视频,在视频里他大力提倡美国人学习计算机知识,培养编程能力。
2017-07-23 23:02:46
4556
原创 Remind-You Part1. 多进程控制
原理说明 在Remind-You中,每个plugin都对应着一个进程。主进程在启动后,从配置文件中读取当前有多少个插件。并依次启动这些插件。后续plugin进程退出后,主进程都会重新生成plugin进程。 代码位置 可以在github上找到第一天的代码。https://github.com/bymzy/remind-you/tree/day1 文件结构 [root@bymzy remind-you
2017-07-23 23:02:44
291
原创 Project Remind-You(持续更新中......)
说明 一个类似于supervisor的进程监控框架,使用python编写。支持动态plugin插入删除。 程序框架 采用多进程的工作方式,主进程运行后。从配置文件中读出所有的plugin信息。并根据配置中的启动函数,为每个plugin启动一个进程运行。主进程起监控进程的作用,当某个plugin终止后,主进程根据起plugin配置信息,重新将其拉起。 已完成部分 程序初始化 程序打包 字典插件服务
2017-07-23 23:02:41
239
原创 linux c/c++ 动态库和静态库的生成与使用
一.写在前面 本文仅仅是总结了,静态库,动态库的使用及基本编译方法。至于库本身的格式,内存地址等较底层问题,则等有时间放到操作系统一类的文章中研究。下面开始正题吧。 二.介绍 从源代码到可执行程序,通常要经过最重要的两大步是:编译,链接。编译就是将源文件生成中间文件的过程,在linux下就是生成 .obj 文件。链接就是用链接器将,这些个中间文件有序地”
2015-06-02 23:14:32
4656
原创 stdarg.h编写可变参数函数
一.起因 起因是自己想写一个简单的打印日志的函数,最大的问题是,每次打印的时候输入数据的个数是不同的。最开始的想法是用宏,这样就不管输入参数多少了,但是用宏的话就没办法判断输入参数的类型了。所以就想使用可变参数来实现,那么问题来了,我首先得学学怎么写可变参数函数。呐,stdarg.h可以帮助我。 二.探索 编写可变参数的关键是,va_start() ,va_a
2015-05-17 23:25:39
354
转载 内存对齐
点击查看原文 内存对齐 结构体的内存布局依赖于CPU、操作系统、编译器及编译时的对齐选项。结构体内部成员的对齐要求,结构体本身的对齐要求。最重要的有三点 (一)成员对齐。对于结构体内部成员,通常会有这样的规定:各成员变量存放的起始地址相对于结构的起始地址的偏移量必须为该变量的类型所占用的字节数的倍数。但是也可以看到,有时候某些字段如果严格按照大小紧密排列,根本无法达到这样的
2013-06-05 23:02:51
421
原创 STL list.sort()
list的sort(),在使用时如果不加参数那么,就会使用默认的比较器来进行排序(使用operatorThe sorting is performed by applying an algorithm that uses either operator< (in version (1)) or comp (in version (2)) to compare elements. This co
2013-05-09 21:47:20
703
原创 auto_ptr介绍
#include 1.C++程序设计的时候,经常会遇到的问题就是,new 与delete的合理调用。内存泄露的问题是很让人都疼的,对于内存泄露的预防通常又会使得代码异常复杂,易错。如以下的一个例子: void fun() { classa * ptr=new classa; try{ ... } catch(...){ delte ptr;
2013-05-08 22:20:45
666
原创 function object
Function object 首先从名字来看,所谓function object 实际上是一个object。但是为什么叫function object 呢, 很自然的可以想到,这个object表现出了function的特点。那什么是function呢,所有的可以被调用,并且可以接受参数的的“东西”。 比如下面的例子: #include #include #include us
2013-05-08 22:18:55
604
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人