上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 47 下一页
  2011年6月8日
摘要: /* 此程序演示了二分法查找算法(针对按从小到大排列的数组)的实现。*/#include <iostream>using namespace std;/* 功能: 实现数组的二分法查找(只算法只适合按从小到大排列的数组) 返回值:关键字在数组中的下标, 返回-1表示未找到 a[]: 要搜索的数组 len: 数组元素个数 key: 要查找的关键字*/int binSearch(int a[], int len, int key){ int i = len / 2; int ii = 0; if(len < 1) return -1; if((key > a[i]) &am 阅读全文
posted @ 2011-06-08 10:15 清清飞扬 阅读(3169) 评论(0) 推荐(0) 编辑
  2011年5月31日
摘要: 系统建立IPC通讯(如消息队列、共享内存时)必须指定一个ID值。通常情况下,该id值通过ftok函数得到。ftok原型如下:key_t ftok( char * fname, int id )fname就时你指定的文件名(该文件必须是存在而且可以访问的),id是子序号,虽然为int,但是只有8个比特被使用(0-255)。当成功执行的时候,一个key_t值将会被返回,否则 -1 被返回。 在一般的UNIX实现中,是将文件的索引节点号取出,前面加上子序号得到key_t的返回值。如指定文件的索引节点号为65538,换算成16进制为 0x010002,而你指定的ID值为38,换算成16进制为0x26. 阅读全文
posted @ 2011-05-31 21:14 清清飞扬 阅读(58496) 评论(1) 推荐(2) 编辑
摘要: 在linux或者unix环境中,errno是一个十分重要的部分。在调用的函数出现问题的时候,我们可以通过errno的值来确定出错的原因,这就会 涉及到一个问题,那就是如何保证errno在多线程或者进程中安全?我们希望在多线程或者进程中,每个线程或者进程都拥有自己独立和唯一的一个 errno,这样就能够保证不会有竞争条件的出现。一般而言,编译器会自动保证errno的安全性,但是为了妥善期间,我们希望在写makefile的时 候把_LIBC_REENTRANT宏定义,比如我们在检查<bits/errno.h>文件中发现如下的定义:# ifndef __ASSEMBLER__/* Fun 阅读全文
posted @ 2011-05-31 20:47 清清飞扬 阅读(1849) 评论(0) 推荐(0) 编辑
  2011年5月28日
摘要: 要使用共享内存,应该有如下步骤:1.开辟一块共享内存 shmget()2.允许本进程使用共某块共享内存 shmat()3.写入/读出4.禁止本进程使用这块共享内存 shmdt()5.删除这块共享内存 shmctl()或者命令行下ipcrmftok()。它有两个参数,一个是字符串,一个是字符。字符串一般用当前进程的程序名,字符一般用来标记这个标识符所标识的共享内存是这个进程所开辟的第几个共享内存。ftok()会返回一个key_t型的值,也就是计算出来的标识符的值。shmkey = ftok( "mcut" , 'a' ); // 计算标识符操作共享内存,我们用 阅读全文
posted @ 2011-05-28 15:39 清清飞扬 阅读(3755) 评论(0) 推荐(0) 编辑
摘要: 线程的数据处理 和进程相比,线程的最大优点之一是数据的共享性,各个进程共享父进程处沿袭的数据段,可以方便的获得、修改数据。但这也给多线程编程带来了许多问题。我们必须当心有多个不同的进程访问相同的变量。许多函数是不可重入的,即同时不能运行一个函数的多个拷贝(除非使用不同的数据段)。在函数中声明的静态变量常常带来问题,函数的返回值也会有问题。因为如果返回的是函数内部静态声明的空间的地址,则在一个线程调用该函数得到地址后使用该地址指向的数据时,别的线程可能调用此函数并修改了这一段数据。在进程中共享的变量必须用关键字volatile来定义,这是为了防止编译器在优化时(如gcc中使用-OX参数)改变它. 阅读全文
posted @ 2011-05-28 08:50 清清飞扬 阅读(684) 评论(0) 推荐(0) 编辑
  2011年5月27日
摘要: #include <stdio.h>#include <time.h>#define HEX2BCD(x) (((x) % 10) + ((((x) / 10) % 10) << 4)) /*20 -> 20H*/#define UINT8 unsigned char/* 功能:获取BCD时间 out: [out] 保存获取到的BCD时间,格式为:秒分时日月年(各占一字节,BCD格式)*/void getBCDTime(UINT8 *out){ time_t t; int i = 0; struct tm *tp = NULL; t = time(NU 阅读全文
posted @ 2011-05-27 15:31 清清飞扬 阅读(1228) 评论(0) 推荐(0) 编辑
  2011年5月17日
摘要: 最简单的方法就是下载一个buildtoolchain.tar.gz安装就行了,有时候就是想自己亲身体验一下安装定制过程,Linux的乐趣也在这点。从网上搜集了些资料,以备日后查阅。 如何为嵌入式开发建立交叉编译环境 < language=java type=text/java script> 梁元恩 , 软件工程师2005 年 9 月 在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。文章通过一个具体的例子说明了这些嵌入式交叉编译开发工具的制作过程。随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统 阅读全文
posted @ 2011-05-17 11:54 清清飞扬 阅读(7564) 评论(0) 推荐(0) 编辑
  2011年5月14日
摘要: 点评:linux下挂载(mount)光盘镜像文件、移动硬盘、U盘、Windows和NFS网络共享 linux是一个优秀的开放源码的操作系统,可以运行在大到巨型小到掌上型各类计算机系统上,随着 linux系统的日渐成熟和稳定以及它开放源代码特有的优越性,linux在全世界得到了越来越广泛的linux下挂载(mount)光盘镜像文件、移动硬盘、U盘、Windows和NFS网络共享linux是一个优秀的开放源码的操作系统,可以运行在大到巨型小到掌上型各类计算机系统上,随着 linux系统的日渐成熟和稳定以及它开放源代码特有的优越性,linux在全世界得到了越来越广泛的应用。现在许多企业的计算机系统都 阅读全文
posted @ 2011-05-14 11:42 清清飞扬 阅读(635) 评论(0) 推荐(0) 编辑
  2011年5月5日
摘要: 解决方法 开始-依次运行regsvr32 nusrmgr.cpl regsvr32 mshtml.dllregsvr32 jscript.dllregsvr32 /i shdocvw.dll补冲:nusrmgr.cpl是用户账户的运行文件mshtml.dll是HTML解释器相关模块jscript.dll是Microsoft javascript脚本支持相关文件shdocvw.dll是为Windows应用程序添加基础文件和网络操作相关模块用户帐户打开空白一般可能模块会出现问题,有的会出现比如模块找不到等 多说几句:只要你遇到问题,可以试试运行regsvr32 jscript.dll1.跟命令re 阅读全文
posted @ 2011-05-05 00:16 清清飞扬 阅读(2163) 评论(0) 推荐(0) 编辑
  2011年4月26日
摘要: 开发环境:fedora12 + oracle-client11 + eclipse目标数据库:oracle10g一、准备1. 建表Create Table testTable_OCI( SID int primary key, Seq varchar2(10), UName varchar2(20), Introduce VARCHAR2(2000), Intime DATE default sysdate)-- Create sequence create sequence TESTTABLE_OCISEQminvalue 1maxvalue 9999999999999999999999st 阅读全文
posted @ 2011-04-26 06:02 清清飞扬 阅读(1822) 评论(1) 推荐(1) 编辑
上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 47 下一页