自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ljianhui的专栏

也许生于世上,无重要作为,仍有这份积累会留下......

  • 博客(15)
  • 资源 (18)
  • 收藏
  • 关注

原创 Linux进程间通信——使用数据报套接字

前一篇文章,Linux进程间通信——使用流套接字介绍了一些有关socket(套接字)的一些基本内容,并讲解了流套接字的使用,这篇文章将会给大家讲讲,数据报套接字的使用。一、简单回顾——什么是数据报套接字。socket,即套接字是一种通信机制,凭借这种机制,客户/服务器(即要进行通信的进程)系统的开发工作既可以在本地单机上进行,也可以跨网络进行。也就是说它可以让不在同一台计算

2013-08-31 00:14:24 11451 1

原创 Linux进程间通信——使用流套接字

前面说到的进程间的通信,所通信的进程都是在同一台计算机上的,而使用socket进行通信的进程可以是同一台计算机的进程,也是可以是通过网络连接起来的不同计算机上的进程。通常我们使用socket进行网络编程,这里将会简单地讲述如何使用socket进行简单的网络编程。一、什么是socketsocket,即套接字是一种通信机制,凭借这种机制,客户/服务器(即要进行通信的进程)系统的开发工作

2013-08-29 00:18:48 32877 13

原创 都是类型惹的祸——小心unsigned

正如我们所知道的,编程语句都有很多的基本数据类型,如char,inf,float等等,而在C和C++中还有一个特殊的类型就是无符号数,它由unsigned修饰,如unsigned int等。大家有没想过,就是因为这些不同的类型,而使大家编写的看似非常正确的程序出现了预想不到的错误呢?废话不多说,马上来看一下例子,让你先来体验一下这个奇妙的旅程,源代码文件名为unsigned.c,源代码

2013-08-27 00:39:05 41360 5

原创 Linux进程间通信——使用消息队列

下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。  每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。Linux用宏

2013-08-25 00:09:57 149134 26

原创 Linux进程间通信——使用共享内存

下面将讲解进程间通信的另一种方式,使用共享内存。一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一

2013-08-24 10:26:39 237807 55

原创 Linux进程间通信——使用信号量

这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。下面就进入信号量的讲解。一、什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供

2013-08-24 00:12:54 187839 43

原创 Linux进程间通信——使用命名管道

在前一篇文章——Linux进程间通信——使用匿名管道中,我们看到了如何使用匿名管道来在进程之间传递数据,同时也看到了这个方式的一个缺陷,就是这些进程都由一个共同的祖先进程启动,这给我们在不相关的的进程之间交换数据带来了不方便。这里将会介绍进程的另一种通信方式——命名管道,来解决不相关进程间的通信问题。一、什么是命名管道命名管道也被称为FIFO文件,它是一种特殊类型的文件,它在文件系

2013-08-23 00:10:31 84353 14

原创 Linux进程间通信——使用匿名管道

在前面,介绍了一种进程间的通信方式:使用信号,我们创建通知事件,并通过它引起响应,但传递的信息只是一个信号值。这里将介绍另一种进程间通信的方式——匿名管道,通过它进程间可以交换更多有用的数据。一、什么是管道如果你使用过Linux的命令,那么对于管道这个名词你一定不会感觉到陌生,因为我们通常通过符号“|"来使用管道,但是管理的真正定义是什么呢?管道是一个进程连接数据流到另一个进程的通

2013-08-22 03:29:28 27972 2

原创 Linux进程间通信——信号集函数

我们已经知道,我们可以通过信号来终止进程,也可以通过信号来在进程间进行通信,程序也可以通过指定信号的关联处理函数来改变信号的默认处理方式,那么我们应该如何设定我们需要处理的信号,我们不需要处理哪些信号呢?信号集函数就是帮助我们解决这些问题的。有关Linux进程间使用信号通信的更多内容,可以参阅我的另一篇文章——Linux进程间通信——使用信号例如,Linux有一个健壮的信号

2013-08-21 02:32:56 12795

原创 Linux进程间通信——使用信号

一、什么是信号用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。信号是UNIX和Linux系统响应某些条件而产生的一个事件,接收到该信号的进程会相应地采取一些行动。通常信号是由一个错误产生的。但它们

2013-08-21 00:24:54 61272 20

原创 Linux启动新进程的几种方法及比较

有时候,我们需要在自己的程序(进程)中启动另一个程序(进程)来帮助我们完成一些工作,那么我们需要怎么才能在自己的进程中启动其他的进程呢?在Linux中提供了不少的方法来实现这一点,下面就来介绍一个这些方法及它们之间的区别。一、system函数调用system函数的原型为:#include int system (const char *string);它的作用

2013-08-20 00:15:31 57369 9

原创 Linux数据管理——文件锁定

一、什么是文件锁定对于锁这个字,大家一定不会陌生,因为我们生活中就存在着大量的锁,它们各个方面发挥着它的作用,现在世界中的锁的功能都可归结为一句话,就是阻止某些人做某些事,例如,门锁就是阻止除了屋主之外的人进入这个房子,你进入不到这个房子,也就不能使用房子里面的东西。而因为程序经常需要共享数据,而这通常又是通过文件来实现的,试想一个情况,A进程正在对一个文件进行写操作,而另一个程序

2013-08-19 16:23:20 6009

原创 Linux 文件操作——系统调用和标准I/O库

一、什么是文件在讲述文件操作之前,我们首先要知道什么是文件。看到这个问题你可能会感觉到可笑,因为对于用过计算机的人来说,文件是最简单不过的概念了,例如一个文本是一个文件,一个work文档是一个文件等。但是在Linux中,文件的概念还远不止于这些,在Linux中,一切(或几乎一切)都是文件。文件包括很多的内容,例如:大家知道的普通文件是文件,目录也是一个文件,设备也是一个文件,管道也是一

2013-08-19 00:18:13 13479 7

转载 说一说vector<bool>

vector标准库模版类应该是绝大多数c++程序员使用频率比较高的一个类了。不过vector也许就不那么被程序员所了解。关于vector不尝试研究一番,一般还不太容易知道其中蕴含的问题。首先得明确一点,那就是vector是vector的特化版。这个特化版本要解决的问题就是存储容量的问题。To optimize space allocation, a specialization o

2013-08-16 22:33:06 3711

转载 从 Qt 的 delete 说开来

在C++中学习过程中,我们都知道:delete 和 new 必须 配对使用(一 一对应):delete少了,则内存泄露,多了麻烦更大。Qt作为C++的库,显然是不会违背C++的前述原则的。可是:在Qt中,我们很多时候都疯狂地用new,却很少用delete,缺少的 delete 去哪儿了?!注:本文暂不涉及智能指针(smart pointer)相关的东西,你可以考虑

2013-08-03 19:00:03 1742

linux下android apk反编译工具

linux下的android apk反编译工具,仅用于学习!使用详情请参考如下文章:http://blog.csdn.net/ljianhui/article/details/38985441

2014-09-01

代理模式+智能指针SharePtr代码

本人实现的一个代理模式的代码,同时也有一个实际应用代理模式的智能指针SharePtr的实现代码。

2014-06-09

C++实现的单例模式代码

本人使用C++实现的单例模式,实现方式有三种,包括单线程下的,多线程下的代码。

2014-06-08

C++ string类的隐式共享写时拷贝实现代码

本人采用C++实现的string类,采用的内存管理策略是隐式共享写时拷贝,其实现参考了智能指针的思想。

2014-04-03

实现内存半自动释放的基类Object

内存管理是C++最令人痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的性能,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在。难道使用C++就不能像使用C#或java那样,不管内存的释放吗?其实我们可以通过适当的设计来减轻我们对内存的管理任务。虽然不能像C#或java那样,完全不管内存的使用和释放,但是也能在很大程度上减轻我们对内存的管理压力。下面就以本人设计的一个基类说明一下,如何实现C++内存的半自动释放。

2014-02-22

泛型链表——C语言实现

使用C语言实现的“泛型链表”,该链表为循环双链表,它的设计参考了C++的STL容器库中的容器list及泛型算法的接口,并使用迭代器来遍历链表。使用时只需要include头文件即可,隐藏了List类型的具体实现。用户并不需要知道链表的具体实现,只需要调用头文件中的接口来进行相应的操作即可。

2014-01-24

在文本文件中查找关键字

在文件中查找指定的关键字,采用了两种不同的方法实现,一种一次读入所有的数据,一种是使用缓冲区,多次读入数据到缓冲区中进行字符串匹配。

2013-12-18

TCP/IP高效编程-改善网络程序的44个技巧

网络编程的经典书籍,内容清晰,该书的内容简介:   作为网络程序员,你是否发现自己的应用程序远远不够健壮?那么,你需要了解编写高效TCP/IP程序所需的各种知识。本书正是这么一本经典著作,它专注于协议族中那些细微的特性,提炼出的44个技巧可立竿见影地提升编程能力。   本书在介绍这些技巧的同时,对TCP/IP编程的基本思想和概念进行了说明,结合大量实例透彻解析了TCP/IP中的实践经验以及法则,还说明了如何避免网络编程中一些最常见的问题。书中提供的框架代码和常用函数库让你能够方便快捷地编写出应用程序,而无需操心一些细枝末节。 PS:该pdf文档没有目录

2013-11-23

vim命令操作大全

本图片包含大量的常用vim使用命令和操作,而且对所使用的命令进行了分类,方便查阅

2013-09-05

DLL例子程序

一个DLL的简单的例子和应用程序!基于控制台的一个例子程序!

2013-06-18

SQL Sever 2000 自学教程

内容简单易懂,而且比较清晰,可以让你对数据库有所了解。全书十六章。

2012-08-19

devcpp教程

一份比较完备的关于DevCpp的使用方法的教程。

2012-02-17

TurboC3.0中文版

支持中文的Turboc编译器,中文的界面有助于初学者的使用和开发,而且也支持程序里中文,不用因程序中的中文变成乱码而担忧。

2012-02-17

DevCpp一款不错的C/C++编译器,而且免费开源

一款不错的C/C++编译器。支持多种语言,适合于初学者和其他开发人员的不同需求。

2012-02-17

计算机专业导论文

有关计算机的专业论文,主要介绍一下计算机的体系和有关方面的知识!

2012-01-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除