自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

管道通信的几种情况分析

      在linux中,管道是一种常见的进程间通信方式,不过它只能用于具有亲缘关系的进程之间.      下面是管道通信过程中几种情况的讨论:       1.读端打开,写端打开          此时管道的读端将阻塞,直至有数据从管道的写端写入       2.读端打开,写端关闭          此时读端将立即返回       3.读端关闭,写端打开      ...

2011-07-02 18:06:06 360

原创 如何解决linux shell中出现乱码

 今天使用新装的red hat linux 9.0 发现出现乱码。我知道一定是语言包出问题,但我不知道该在哪修改。于是上网搜了一下。现把附上,留给哪些遇到相同问题人吧。1.解决linux乱码#vi /etc/sysconfig/i18n修改以下三行:LANG="en_US.UTF-8"SUPPORTED="en_US.UTF-8:en_US:en"SYSFONT="l...

2011-06-29 21:43:26 487

原创 寻址方式

一、80286的8中寻址方式1、 立即寻址方式(immediate addressing)立即数:操作数直接放在指令中,紧跟在操作码之后,它作为指令的一部分存放在代码段里。指令中的源操作数是立即数,即源操作数是参加操作的数据本身。eg1:MOV   AL, 5指令执行后,(AL)=05Heg2:MOV   AX, 1234H执行指令后,(AX) = 1234H备...

2011-06-13 18:19:33 525

原创 8086寄存器简介

 引子打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识,自然,还是得从最基础的开始,那就从汇编语言开刀吧,从汇编语言开刀的话,我们必须还先要了解一些其他东西,像  CPU ,内存这些知识点还是理解深刻一点的比较好,所以这一篇博文就绕着 80x86  CPU 中寄存器的基础部分下手,至于其他的一些将会在后续的博文中介绍 。同时在这里说明一下,本篇博文...

2011-06-13 18:17:58 1770

如何创建某个进程的多个子进程?(方式二)

   在前面,我们是采取递归方式实现的,现在我们采取另一种方式创建某个进程的多个子进程   代码如下所示:#include<stdio.h>#include<stdlib.h>#include<unistd.h>/* * 创建指定数目的子进程 */void createsubprocess(int num){ pid_...

2011-02-25 10:55:05 473

如何创建某个进程的多个子进程?(方式一)

       相信大家都知道,在linux环境中,使用fork()函数来创建子进程.然而市面上的书籍往往都是告诉大家如何创建一个子进程,那么如何创建某个进程的多个子进程呢?       好了,废话不多数了,请看如下代码(这里我们采用递归实现):       #include<stdio.h>#include<stdlib.h>#include<un...

2011-02-25 10:06:52 304

exec函数族的使用研究

exec函数族的使用研究 首先我们来简单了解一下exec函数的作用是干嘛的,它是在程序中启用一个新的程序,这个程序会替代原有的进程,但是它的进程PID是不变的,还是启动它的这个进程的PID,就相当于交接一样,一个进程把它所举的牌子给了另外一个进程,另外一个进程可以继续举着这个牌子跑。 Ok,下面我们来详细看一下这个函数的使用。错了,我不应该说这个函数的使用,而是应该说这一系列函数的使用。为什么这样...

2011-02-23 14:46:27 102

Windows与VMware 下Linux的文件共享方法--->安装sambu服务器

1.在命令行下打setup,进入system services,在smb处加上星号 •(空格),退出. 2.确保samba服务启来:service smb start 3.修改etc/samba/smb.conf以添加共享文件夹   [workfolder]   comment = Vmware share folder   path = /work   writable = yes   publ...

2011-02-21 14:04:33 122

在Linux Redhat 9.0使用YUM

在Linux Redhat 9.0使用YUM伺服器來管理rpm套件升級方法由於 Redhat 公司己經停止了對Linux Redhat 9.0的維護,所以我們這些使用者必須找到另一個方法去升級套件,這時使用YUM伺服器來管理rpm套件升級, 因為它可以避免套件間相依性而安裝失敗.要連線YUM伺服器必須要先要裝下列程式:yum-2.0.4-1.rh.fr.i386.rpm此檔案可到 http://a...

2011-02-19 00:09:47 130

linux解压缩,压缩命令

tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出下面的参数-f是必须的-f: 使用档案名字,切记...

2011-02-18 12:56:31 69

解决Linux 软件包的依赖关系

刚才看见有人讨论Linux软件包的依赖问题,软件的依赖关系确实是一个比较令人头痛的问题,尤其是对新手来讲。我个人而言,解决这种依赖关系中要有三个方法。(以下皆以Fedora为例)  1.尽量安装软件源上已经有的安装软件  这听起来似乎是废话一样,但实际上有很多时候我们从网上随意下载一个软件包,然后费尽心思解决了依赖关系以后,却可能不经意间发现――原来这个软件在系统的软件源上有现成的,我们只要yum...

2011-02-17 15:33:48 869

原创 简单区分Vmware的三种网络连接模式(bridged、NAT、host

Vmware在安装时默认安装了两块虚拟网卡,VMnet1和VMnet8,另外还有VMnet0。这些虚拟网卡的配置都是由Vmware虚拟机自动生成的,一般来说不需要用户自行设置。Vmware提供了三种网络连接模式,分别为1、bridged(桥接模式):默认使用VMnet0,不提供DHCP服务  在桥接模式下,虚拟机和宿主计算机处于同等地位,虚拟机就像是一台真实主机一样存在于局域网中。...

2011-02-17 10:30:57 162

虚拟机Vmware下 linux上网设置 ( NAT 方式) +图解

安装环境:1、  宿主机系统:windows xp ps22、  虚拟机系统:redhat enterprise linux 53、  Vmware版本:vmware workstation 6.5 方法二:NAT方式1、    安装vmware2、    禁用VMware Network Adapter VMnet1,启用VMware Network Adapte...

2011-02-17 10:01:49 119

原创 解决linux shell中出现乱码的方法

1.解决linux乱码#vi /etc/sysconfig/i18n修改以下三行:LANG="en_US.UTF-8"SUPPORTED="en_US.UTF-8:en_US:en"SYSFONT="latarcyrheb-sun16"2.修改完后,退出shell,重新登录就生效了。注:在修改配置文件前,建议先备份(cp /etc/sysconfig/i18n /etc/sys...

2011-02-13 17:15:02 387

一个线程池的最小实现

     在消息中间件的实现中,为了提高客户端和服务器端通信的效率以及提高资源的利用率,利用线程池是必不可少的一环.     下面我们简单介绍下线程池的实现方式,线程池的实现主要由以下部分组成:     1.任务接口:要让线程去执行的代码段应该用任务接口定义好     2.任务队列:在任务队列中保存了所有将要执行的任务     3.工作线程:工作线程继承自Thread类或实现Run...

2011-01-26 16:52:48 90

实现一个优先级队列

       由于我的硕士毕业论文选题是关于中间件方面的,故在写论文过程中涉及到一些常见的数据结构,今天就实现一个基于优先级的队列.        下面是我的任务类:(其实应该定义为接口的,在这里只是为了方便)        package com.liu.queue;public class Task { //任务的优先级 private int grade;...

2011-01-26 14:07:49 244

原创 linux 软链接和硬链接详解(转载)

前提必须清楚一点,当指向数据的文件个数为0 时,数据块就会被释放掉,硬链接相当于硬盘上一块数据的多个指针,而软链接相当于指向数据指针的指针。个人理解成下面的图例左边的是硬链接,右边的是软链接,无论对于哪个链接文件的编辑操作最后都将转换到对数据块的操作上,这一点软硬链接是一样的,但是对于连接文件的删除就不一样了,对于硬链接文件,无论删除谁,只要还有其他硬链接存在,数据块就会继续存在,但是对于...

2011-01-11 21:47:44 141

原创 Linux下目录的可执行属性(转载)

大家对Linux下文件的权限属性比较关注。但是对目录的权限属性关注的相对较少,尤其是对目录的可执行权限属性。但是目录的可执行属性对于文件操作有重要的影响。我在工作中经常遇到同事对目录的可执行属性不了解而“撞妖”的情况,所以本文进行一下简单的描述。      在文档中目录的可执行属性被称为“搜索位”,非常费解。搜索位的意思是只有目录具有了可执行权限,你才能访问目录中的文件(根据文件的权限属性来读...

2011-01-05 20:56:06 268

原创 Linux输入输出重定向以及管道

标准输入与输出我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。我们以cat命令为例,cat命令的功能是从命令行给出的文件中读取数...

2011-01-03 20:42:52 170

递归方式求数组中的最大值

/* * 递归方式求数组中的最大值 */#include<stdio.h>#include<stdlib.h>int getmax(int *a,int i,int n){ //特别注意递归的出口 if(i>=n)return *(a+i-1); int value=getmax(a,i+1,n); if(*(a+i)&gt...

2011-01-03 14:38:29 216

c语言如何动态分配二维数组?

/* * c语言如何动态分配二维数组? */#include<stdio.h>#include<stdlib.h>/* * 动态分配二维空间 */int **init(int m,int n){ int num=1; int **a; a=(int **)malloc(m*sizeof(int *)); for(int...

2011-01-03 14:14:57 83

数组指针和指针数组的用法

/* * 数组指针和指针数组的用法 */#include<stdio.h>#include<stdlib.h>int main(){ int i,j; int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; //定义数组指针 int (*m)[3]; //定义指针数组 int *n[3]; /...

2011-01-03 13:12:31 72

打印以下图形

/* * 打印以下图形: * 1 2 3 4 5 * 2 3 4 5 1 * 3 4 5 1 2 * 4 5 1 2 3 * 5 1 2 3 4 */#include<stdio.h>#include<stdlib.h>...

2011-01-03 11:34:50 1019

字符串原地压缩

/* * 字符串原地压缩 * 例如:"eeeeeaaaff"压缩为"e5a3f2" */#include<stdio.h>#include<stdlib.h>#include<string.h>char *change(char *str){ int count=0; char *s=str; //最坏情况下需要申...

2011-01-03 11:09:20 92

用两个栈实现队列

/* * 用两个栈实现队列 */#include<stdio.h>#include<stdlib.h>typedef struct stack{ //用来保存元素 int *a; //当前的下标 int loc; //栈中最多可以容纳的元素个数 int max;}st;/* * 初始化指定大小的栈 */...

2011-01-02 14:10:15 58

在字符串s中查找子串t最后一次出现的位置

/* * 设计一个算法,在字符串s中查找子串t最后一次出现的位置 */#include<stdio.h>#include<stdlib.h>#include<string.h>int lastindexof(char *s,char *t){ char *s1=s; char *t1=t; int n1=strlen(...

2011-01-02 13:02:50 4926

将一个浮点数转换为字符串(有bug,不知道什么原因)

/* * 将一个浮点数转换为字符串 * 例如:123.456转换为"123.456" */#include<stdio.h>#include<stdlib.h>char *convert(double d){ //代表浮点数d的整数部分 int d1=(int)d; //代表浮点数d的小数部分 double d2=d-d1;...

2011-01-02 11:17:21 177

最长平台问题

/* * 已知一个已经从小到大排列好的数组,说这个数组中的一个平台(Plateau) * 就是连续的一串相同的元素,并且这一串元素不能再延伸 * 例如,在1,2,2,3,3,3,4,5,5,6中1,2.2,3.3.3,4,5.5,6都是平台 * 编写程序把这个数组中最长的平台找出来 */#include<stdio.h>#include<stdlib....

2011-01-01 21:03:16 123

寻找数组中第二大数

/* * 写一个函数找出一个整数数组中,第二大的数(microsoft) * 要求效率尽可能高 */#include<stdio.h>#include<stdlib.h>int find(int *a,int n){ int i=1; int second=*(a+i); while(i<n) { if(*(a+i...

2011-01-01 20:02:42 136

在父串中寻找子串首次出现的位置

/* * 在父串中寻找子串首次出现的位置(实现类似于java中的indexof()方法) * str1="cbcdabcf" * str2="bcf" */#include<stdio.h>#include<stdlib.h>#include<string.h>/* * str1:父串 * str2:子串 */...

2011-01-01 15:30:43 1005

比较两个字符串大小(带大小写的比较)

/* * 给出一个函数,原型为int compare(char *dest,char *src) * 要求比较两个字符串(由dest与src字符指针标识) * 1.如果两个字符串所含字母完全相同,则返回0 * 2.如果两字符串所含字母相同(不区分大小写,A与a也算相同),则返回1 * 3.否则返回2 */#include<stdio.h>#include...

2011-01-01 14:20:58 787

从字符串中找出连续最长的数字串

/* * 写一个函数,它的原型是int continummax(char *outputstr,char *inputstr) * 功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长 * 数字串赋给其中一个函数参数outputstr所指内存.例如:"abcd12345ed125ss123456789" * 的首地址传给inputstr后,函数将返回9,outp...

2011-01-01 13:58:09 111

判断两个有序数组中是否存在相同的数字(要求时间复杂度为O(n))

/* * 判断两个有序数组中是否存在相同的数字(要求时间复杂度为O(n)) */#include<stdio.h>#include<stdlib.h>bool existthesame(int *a,int n1,int *b,int n2){ int i=0; int j=0; bool flag=false; while(i&...

2011-01-01 11:50:54 544

将给定的一个数字字符串转换成整数

/* * 请编写一个函数,该函数将给定的一个数字字符串转换成整数 */#include<stdio.h>#include<stdlib.h>//用来标识转换操作是否发生错误(true:发生了 false:没有发生)bool flag=false;int convert(const char *str){ const char *s...

2011-01-01 11:29:14 657

将一个整数转换为字符串

/* * 请编写一个函数,该函数将给定的一个整数转换为字符串 */#include<stdio.h>#include<stdlib.h>/* * 判断value>0或value<0或value=0 */char *convert(int value){ int a[20]; int loc=0; char *s...

2011-01-01 10:54:08 437

猴子吃桃问题

/* * 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 * 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 * 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少 */#include<stdio.h>#include<stdlib.h>int getsum...

2010-12-31 14:01:34 70

用c语言实现顺序队列(采用少用一个存储空间的方式解决假溢出问题)

/* * 用c语言实现顺序队列(采用少用一个存储空间的方式解决假溢出问题) */#include<stdio.h>#include<stdlib.h>#include<math.h>typedef struct queue{ //保存队列中的元素 int *a; //保存队列头部元素的索引 int front;...

2010-12-31 12:32:34 1994

原创 用c语言实现顺序队列(采用计数器解决假溢出问题)

/* * 用c语言实现顺序队列(采用计数器解决假溢出问题) * 添加一个计数器 */#include<stdio.h>#include<stdlib.h>typedef struct queue{ //保存元素的数组 int *a; //保存队头元素的索引 int front; //保存队尾元素的索引 int ...

2010-12-31 11:51:02 229

用c语言实现顺序队列(采用标志位解决假溢出问题)

/* * 用c语言实现顺序队列(采用标志位解决假溢出问题解决假溢出问题) * 添加一个标志位 *(采用的思路是增加一个标志位flag,当入队列的时候设置flag=1,出队列的时候设置flag=0,因为队列满只可能存在于入队列的时候,所以多加一个判断就可以了) */#include<stdio.h>#include<stdlib.h>#includ...

2010-12-30 17:42:43 851

原创 用c语言实现顺序队列(存在假溢出现象,即队列中有空间却无法插入)

/* * 用c语言实现顺序队列(存在假溢出现象,即队列中有空间却无法插入) */#include<stdio.h>#include<stdlib.h>typedef struct queue{ //用来保存元素的数组 int *a; //队头元素下标 int front; //队尾元素下标 int rear; //数组...

2010-12-30 15:03:35 507

空空如也

空空如也

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

TA关注的人

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