Linux开发简单多进程应用

2017-03-02
阅读 5 分钟
5.2k
进程间通信(IPC,InterProcess Communication)是指在不同进程之间传递或交换信息。IPC常见的方式有:管道(无名管道、命名管道)、消息队列、信号量、共享内存、磁盘文件、Socket等,其中Socket网络方式可以实现不同主机上的多进程IPC

使用Pdb调试Python

2016-08-18
阅读 4 分钟
8.3k
简单介绍 Python自带 Pdb库,使用 Pdb调试 Python程序还是很方便的。但是远程调试、多线程,Pdb是搞不定的 本文参考的相关文章如下: 《指针和字符串和字符串常量、用gdb来获取非法内存中的内容》 《Linux gdb调试器用法全面解析》 《用PDB库调试Python程序》 用Pdb调试有多种方式 使用 Pdb调试 Python的程序的方式主要...

搭建Python虚拟环境

2016-08-14
阅读 2 分钟
2.7k
虚拟环境非常有用,可以在系统的Python解释器中避免包的混乱和版本的冲突。为每个程序单独创建虚拟环境可以保证程序只能访问虚拟环境中的包,从而保持全局解释器的干净整洁,使其只作为创建(更多)虚拟环境的源。

SQL的连接

2016-07-10
阅读 9 分钟
2.2k
基础数据准备 创建两张用于测试的表 {代码...} 分别插入两条测试数据 {代码...} 内连接 内连接(典型的连接运算,使用像 = 或 <> 之类的比较运算符)。 包括相等连接和自然连接。 内连接使用比较运算符根据每个表共有的列的值匹配两个表中的行。 {代码...} 等价于 {代码...} 连接的时候 on 和 普通的 where 一样,...

Delphi中字符串比较大小 VS Oracle-SQL中字符串比较大小

2016-04-14
阅读 2 分钟
5.1k
重点注意Delphi和Oracle-SQL中比较字符串时空字符串''的根本性的不同 Delphi中的字符串比较 Delphi中字符串比较大小的规则:对应位置的字符按照字符编码值逐个对比,直到遇到可以确定大小关系的就结束比较 参考《Delphi的Ord函数和ASCII码对照表》 常见的一些字符的字符编码 '0'对应字符编码48;'1'对应字符编码49。'2'...

Oracle数据表死锁的解决方法

2016-02-19
阅读 4 分钟
16.4k
一个简单的排查和解决方法 死锁时会报错:ORA-00060: deadlock detected while waiting for resource 对应的中文报错是:ORA-00060: 等待资源时检测到死锁 执行下面的SQL,查看被锁的表: {代码...} 执行下面的SQL可以强制解锁 {代码...} 具体的操作可以看下面的实例,更加直观的理解死锁,并且去解决死锁 通过一个实例...

所有博客将会誊到http://www.xumenger.com/

2015-10-26
阅读 1 分钟
2.2k
最近在搞github上面的静态博客,还是比较爽的,以后所有的文章将会写到github上,在上面托管我的博客 这是我的新的博客地址 [链接]

make和makefile,多文件项目管理

2015-09-16
阅读 6 分钟
13.6k
作为项目的组成部分,各个模块不可避免的存在各种联系,如果其中某个模块发生改动,那么其他的模块需要相应的更新。如果通过手动去完成这个工作的话,对于小型的项目可能还行,但是对于比较大型的项目就几乎是不可能的。

C语言的预处理、宏、文件包含

2015-09-16
阅读 2 分钟
4.1k
C语言介绍 C的开发流程 C 是一种编译型语言,所谓编译型语言是指在程序运行之前,需要先经过编译和链接过程: 编辑源文件(获得源文件) 编译源文件(获得目标文件) 链接目标文件及库文件(获得可执行文件) 运行程序(获得运行结果) 对变量定义的理解 比如: int i; 定义一个变量的过程实际上是向内存申请一个符合这...

配置一个强大的FireFox

2015-09-15
阅读 2 分钟
5.3k
你的浏览器绝对不止是一个浏览器,安装一些插件,可以让你的浏览器变成神器。正是应了一个好的设计应该坚持的一个原则:面向扩展开放,面向修改封闭,也就是说系统支持扩展,但是不支持修改。

使用git和github管理自己的项目---真实开发环境的策略

2015-09-12
阅读 9 分钟
18.9k
基础知识和命令先参考:使用git和github管理自己的项目---基础操作学习 13.分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。 下面我们实...

整理一些质量不错的教程、博客、论坛

2015-09-11
阅读 2 分钟
9.3k
虽然好的论坛上的信息比一般的论坛更靠谱,但是你也不能保证在StackOverFlow上回到你问题的那个人就是高手、给的答案就是准确无误的。所以本文虽然整理出了一些论坛,但是在使用的时候还是不能轻信,还是要自己去认真的考证!我觉得论坛最大的作用不是学习系统化的知识(系统地、深入地学习知识是一件很严肃的事),而主要...

回溯法解决N皇后问题(以四皇后为例)

2015-09-10
阅读 3 分钟
62k
以4皇后为例,其他的N皇后问题以此类推。所谓4皇后问题就是求解如何在4×4的棋盘上无冲突的摆放4个皇后棋子。在国际象棋中,皇后的移动方式为横竖交叉的,因此在任意一个皇后所在位置的水平、竖直、以及45度斜线上都不能出现皇后的棋子,例子

Linux gdb调试器用法全面解析

2015-09-10
阅读 10 分钟
12.5k
转载自:Linux gdb调试器用法全面解析 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能: 启动程序,可以按照工程师自定义的要求随心所欲的运行程序。 让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式。 当程序被停住时,可以检查此时程序中所发生的事...

使用git和github管理自己的项目---基础操作学习

2015-09-09
阅读 10 分钟
57.2k
除了廖雪峰的教程,还比较推荐在看完廖雪峰的教程之后,再看这样一篇文章:使用git和github进行协同开发流程,和我的另一篇git的笔记:使用git和github管理自己的项目---真实开发环境的策略 ,深入了解github和git怎么在具体的项目开发中管理项目、有什么好的规范!

配置一个强大的vim

2015-09-08
阅读 11 分钟
11.7k
以前我的vim是这样配置的(参见 我在博客园的博客),但是感觉安装的插件数量太少,而且将所有的都写在一个配置文件里面不好管理,所以现在想在一般的配置的基础上,找一些好的插件来配置我的vim,而且对于插件也比较方便管理。

具体的知识 && 知识在项目中的应用(以指针和内存的知识引出)

2015-09-07
阅读 2 分钟
2.8k
第一种方式就是创建了一个线程,这个线程去执行,但是你却没有这个线程对象的指针,所以你不能去控制它,只能任由它去执行,如果能自己结束还好,但是如果是一个循环执行的线程,那么就可能在那里永远执行下去,因为你在创建它的时候,没有记录这个线程对象的指针,所以你就没办法去控制它。其实对于线程还好,你可以设...

记录我的Python学习笔记

2015-09-06
阅读 19 分钟
5.5k
另外对于算法、设计模式、数据结构、网络知识、操作系统…… 的学习可以专门针对性的学习,当然更好的方法是以使用语言为主线,通过具体的应用和实践来推动这些技术知识的学习。

理解一个窗体从创建到显示到释放的执行过程

2015-09-04
阅读 1 分钟
3.3k
当时就迷惑了:明明try...finally...end是顺序执行的,那这样的代码岂不是刚刚创建了窗体,刚刚显示了窗体,然后就立刻Free了窗体吗?

Delphi之在DLL中封装窗体---重点是理解一个Delphi项目的dpr文件和Application对象

2015-09-04
阅读 5 分钟
8k
对于一般的应用程序来说,Application对象是VCL固定的,一般不需要修改Application对象指针。但是在DLL中,使用窗体或者使用Application对象时,那么使DLL的Application和调用程序一样,这样才不至于混淆。如果不修改Application对象,那么应用程序退出的时候,可能会出现错误。例如使用如下代码在调用程序中导出一个函数:

C/C++在内存分配和释放时,小心野指针

2015-09-04
阅读 1 分钟
11.7k
因为在通过 free(p)释放了内存之后,只是将内存进行了释放,不能再使用这块内存,但是这时候p还是会指向这块内存(所以还有通过指针访问这块内存的可能性),所以为了安全,为了不出现后续无意中引用了p就可能会造成错误的情况,就需要在释放了内存之后,显式的将指针置为NULL

从指针和内存角度区别Delphi的record、record类型的指针、类

2015-09-04
阅读 2 分钟
8.6k
Delphi的record,有的人可能理解它是没有方法的类,但是这样的理解只是从表面上去理解的,其实两者存在巨大的区别。 下面只是讲解Delphi的class与record,暂时还没有去钻研C++的类和结构体的差异。 给一个代码解释一下 {代码...} 上面定义了一个record 和一个class ,看起来有点像,但是其本质上有很多的区别。 区别一:...

理解Delphi对象名与对象实体的本质区别

2015-09-04
阅读 4 分钟
4k
此篇博客中我总结的关于New和指针的问题,最近在使用Delphi的面向对象的时候,发现很多类似的问题,现在也要总结一下。 目前以下的总结是针对Delphi的,对于C++我还没有实验过。 通过类声明的变量(对象名)就相当于一个指针,指向内存中的对象实体 情况一:对一个对象变量多次Create          首先说一下对象...

Delphi的指针为什么可以多次New,始于队列TQueue对指针的Push和Pop的思考

2015-09-04
阅读 5 分钟
5.4k
下面的思考是关于Delphi的指针、内存的,其实C、C++的指针、内存大概也是这样的原理,不过可能正在具体的语法……方面有所不同,要结合在一起理解、也要区分开别弄混了!

Delphi的数组名和C/C++的数组名

2015-09-04
阅读 2 分钟
2.7k
那么数组名 i 就是一个指针(准确的说是指针常量,因为它只能指向这个数组的首地址,不能被更改再去指向其他的地址),其就等于 &i[0] (取 i 数组的第一个元素的地址)

C语言中pi=&j和*pi=j的区别

2015-09-04
阅读 2 分钟
5.1k
C语言中的指针是一个难点,主要是感觉很绕,其实C/C++中的指针和Delphi的指针的原理都是一样的,所以这里讲的一个C/C++的例子也适用于Delphi

指针数组和数组指针---C/C++中int *p[4]和int (*p)[4]的区别

2015-09-04
阅读 1 分钟
9.8k
简单介绍 C/C++中的这两种书写方法实在是很像,但是它们的含义有很大的不同,所以一定要能清晰地辨别它们。 简单地说,int *p[4]是指针数组,int(*p)[4]是指向数组的指针 指针数组:是一个元素全为指针的数组;数组指针:可以理解为指针,只是这个指针类型不是int而是int[4]类型的数组 int *p[4],p是一个指针数组,每一...

函数指针---C/C++中int *f(4)和int (*f)(4)的区别

2015-09-04
阅读 1 分钟
4.2k
int (*f)(),表示这是一个函数指针,它要指向一个函数才能有用,指向一个函数之后就可以用它来代替该函数,之后使用这个指针就相当于使用该函数。

比较C/C++和Delphi中的字符串和字符数组(数组和动态分配内存的情况)

2015-09-03
阅读 2 分钟
6.7k
C/C++中的字符串、字符数组、字符指针分配的内存空间 我们知道在C/C++中,我们可以这样理解字符串和字符数组 1) 字符串,就是一个以 '0' 结尾的字符数组 2) 字符数组,包括字符串,但是不一定要以 '0' 结尾,如果不是以'0' 结尾,那么就不能当做字符串使用 在C/C++中,使用字符串可以通过数组,也可以通过为字符指针动态...

指针和字符串和字符串常量、用gdb来获取非法内存中的内容

2015-09-03
阅读 2 分钟
4.1k
例程1 {代码...} 例程2 {代码...} 例程3 字符串开始位置没有规定,但是规定必须以'0'作为结尾标识符 {代码...} 编译调试例程3看看效果 假设例程3命名为string.c 用命令gcc -g -o string string来编译程序 再用gdb ./string来调试程序 break mainrunnextnext 现在步进到想要调试的位置 print s 显示结果$1 = 0x40061c "he...