摘要: strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。void*memcpy(void*dest,constvoid*src,size_tcount); 1 char *strcpy(char * dest, const char * src) // 实现src到des 阅读全文
posted @ 2013-09-13 11:17 leechanx 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 由于循环队列的特殊性,当队首指针=队尾指针的时候,既可能表示空也可能表示满,所以需要另加一个判断位。我现在介绍的循环队列判断满空的三种方法分别是:1.设标志位法 2.预留一位法; 3.预存长度法(顾名思义,很简单)1.设标志位法 思路:预设一个标志,tag,初值=0,每当入队成功,tag=1;每当出队成功,tag=0;那么,当front==rear && tag 则表示“在入队操作之后front=rear”,显然入队造成的f=r的原因就是满了,故 front==rear && tag 表示队列满;同理,front==rear && !tag 表示 阅读全文
posted @ 2013-09-12 12:29 leechanx 阅读(8506) 评论(0) 推荐(0) 编辑
摘要: 众所周知,进程间通信有三种方式,信号量、消息队列和共享内存。不过信号量个人感觉不像通信,其实就是一个锁的东西。共享内存,无非就是在内存段开辟一段小内存,返回地址,供以多个进程来使用,有的进程来这里存数据,有的进程来取数据。要使用一块共享内存,进程必须首先分配它。随后需要访问这个共享内存块的每一个进程都必须将这个共享内存绑定到自己的地址空间中。当完成通信之后,所有进程都将脱离共享内存,并且由一个进程释放该共享内存块。所有共享内存块的大小都必须是系统页面大小的整数倍。(4K*n)1.API:共享内存函数由shmget、shmat、shmdt、shmctl四个函数组成。按步骤如下:1shmget:i 阅读全文
posted @ 2013-09-05 17:44 leechanx 阅读(1499) 评论(0) 推荐(0) 编辑
摘要: 众所周知,进程间通信有三种方式,信号量、消息队列和共享内存。不过信号量个人感觉不像通信,其实就是一个锁的东西。 这部分内容分几个部分 1.API 创建信号量 int semget(key_t key,int nsems,int semflg); 返回值就是信号量标识semid key:所创建或打开信号量集的键值。nsems:创建的信号量集中的信号量的个数,该参数只在创建信号量集时有效。flag:调用函数的操作类型,也可用于设置信号量集的访问权限,两者通过or表示 操作信号量 int semctl(int semid,int semnum,i... 阅读全文
posted @ 2013-09-05 16:04 leechanx 阅读(2346) 评论(0) 推荐(0) 编辑
摘要: 1本来在代码里包含了pthread.h 第一次编译:gcc -o create create.c 提示错误 未定义的引用2后来知道linux标准库没有pthread.h 要链接之-lpthread 第二次编译:gcc -o create -lpthread create.c 仍然提示错误 未定义的引用!3再后来。。。。。发现,-lpthread应该写在末尾 第三次编译:gcc -o create create.c -lpthread 编译成功。。。。。 阅读全文
posted @ 2013-09-03 15:49 leechanx 阅读(9257) 评论(0) 推荐(2) 编辑
摘要: 需要注意的是,open打开FIFO文件的时候,open函数里的flag参数 O——NONBLOCK:置位: 如果“只写”方式打开文件,写进程会阻塞直到有一个读进程来读这个FIFO管道。就是说:没有进程来读文件,则写进程会阻塞在open语句。所以要read和write两个程序一起运行才能顺利运行O_NONBLOCKWhen opening a FIFO with O_RDONLY or O_WRONLY set:* If O_NONBLOCK is set, an open() for reading-only shall return without delay. An open() for 阅读全文
posted @ 2013-09-02 11:47 leechanx 阅读(1970) 评论(0) 推荐(0) 编辑
摘要: 先贴一个常见的浮动代码 父元素div设置背景色为灰色#f1f1f1,子元素div分别设置不同的颜色test1I am No.1I am No.2I am No.3I am No.4这个代码会生成如下的效果:我们发现父元素根本没有高度(审查元素可以看出父元素div#container的高度=0)分析:浮动float属性会使得元素脱离当前HTML文档流,那么会使得:当前HTML文档会当作设置float属性的元素不存在一样。那么,由于这5个子元素都设置了float,所以可以看作父元素#container内根本没有内容,div在没内容的时候表现正好是高度=0.解决方法:1设置父元素float例如:#c 阅读全文
posted @ 2013-06-21 21:42 leechanx 阅读(857) 评论(0) 推荐(0) 编辑
摘要: 假设你写了一个ruby程序 例如 lcx.rb 现在你想把它生成可执行文件exe 用于没有ruby环境的机器上具体办法:1.下载ruby gem: http://rubygems.org/pages/download2.安装gem 打开下载后解压的文件夹 运行setup.rb 双击就行 cmd里ruby setup.rb当然也可以啦3.之后打开cmd 输入命令gem 检查是否安装成功4.输入命令 gem install ocra 自动安装ocra5.cmd路径到你的ruby代码的所在文件夹 然后ocra lcx.rb 就在同级目录下生成exe文件了 阅读全文
posted @ 2013-06-02 13:42 leechanx 阅读(763) 评论(0) 推荐(0) 编辑
摘要: 编译原理课程设计,自己设计一个编程语言,给出关键字,给出文法,再设计一个编译器完成对代码的汇编生成。具体内容包括:1.前期:设计好关键字 设计好文法 2.词法分析; 3.语法分析; 4.语义分析; 5.翻译生成汇编。先上个我做的成果:这个是主界面:我用的是java 图形化SWT实现这时你发现我多了一个按钮叫“翻译token”,其实这个和编译没关系,只不过是我文法设计的不是太完善,于是采取的一个补救措施。具体后面会说到。按照我的UI你一定能看懂怎么用先演示一遍:1.输入你的代码(按我的文法)... 阅读全文
posted @ 2013-05-07 16:05 leechanx 阅读(925) 评论(0) 推荐(1) 编辑
摘要: 原文章:http://guoyunsky.iteye.com/blog/1781885 用github也1.年半了,虽然在上面也陆陆续续的建了些工程。但要么就是fork别人的,要么就是自己练习用的。今天终于开了下荤,建了个开源的小项目。但发现写README.md还是需要些技巧。这里记录下来. 针对中文,演示Markdown的各种语法Markdown代码大标题===================================大标题一般显示工程名,类似html的\你只要在标题下面跟上=====即可中标题-----------------------------------中标题一般显示... 阅读全文
posted @ 2013-03-25 15:15 leechanx 阅读(9181) 评论(0) 推荐(1) 编辑
摘要: 最近这个过年啊,本来志气满满带了两本jQuery回去看看,结果发现书里大部分基础应用都会,然后太难的又不想看啊,没气氛啊!!!好了,不扯了,切入正题上一篇解决了struts2下的配置,这次就先开个小程序吧。首先呢,这个struts2的结构得先熟悉,它是一个典型的MVC框架,业务流程我的理解如下:恩,一个请求页面.jsp->发送请求到你的Servlet容器也就是你的服务器,请求经过“过滤器”,(在web.xml里配置,struts配置的时候需要添加的org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter)这 阅读全文
posted @ 2013-02-26 15:54 leechanx 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 1.建立web project工程,我的结构如下:2.这一步非常重要:引入必要的jar包,很多博客丫的就给出7个jar包,别理他们!根本不完整!版本2.3.8的struts2需要的jar包如下:一共11个!引入方法是:右键工程->properties->java build path->Libraries->add external jar 把这11个jar包引入进去!(顺便强烈鄙视某些博客在2.3.8的版本下只引入7个包,请问你们是如何做到的?)3.修改WEB-INF/lib下的web.xml加入struts2org.apache.struts2.dispatcher 阅读全文
posted @ 2013-01-24 15:44 leechanx 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 在用无论Eclipse或者Myeclipse写WEB程序的时候,会发现内存非常的卡,主要是这两个东西丫太占内存了,所以最近学了一下如何脱离Eclipse写WEB。首先,找到你的tomcat安装目录,找到lib文件夹,找到里面的startup.bat ,双击。。。。。是不是一闪而过?如果是,那么一步一步按如下来,如果命令显示server start up...好吧,你的Tomcat服务器启动了,跳过第一步吧:第一步:打开Tomcat服务器:一闪而过的原因是环境变量没有配置。配置环境变量如下:CATALINA_BASE D:\tomcat6.0 --tomcat的安装根路径CATALINA_HOM 阅读全文
posted @ 2013-01-20 18:26 leechanx 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 使用JS比如“”时,肯定我们都有一个想法:自带的alert(confirm,prompt)是不是可以个性化美化一下?当然可以。 同样,ajax返回的提示框也一样通过以下方法修改样式。 当然我也不会自己设计这些windows对象,但是可以借助一个很好的JS源码: alertify.js (百度之) 我前端习惯使用BOOTSTRAP,这个js恰好有BOOTSTrap风格类似的提示框、确认框等。需要下载它的js---alertify.min.js,以及相关的css, 我一会把这些东西贴在文章下面。 现在创建一个JSP页面,引入 我是提示框!')">点我,我是... 阅读全文
posted @ 2012-12-28 18:23 leechanx 阅读(1049) 评论(0) 推荐(0) 编辑
摘要: 不说废话,直接切入正题:1.申请GITHUB帐号,不用说的;2.下载GIT,地址百度之;3.下载完点开GIT BASH命令行输入:$ git config --global user.name "你的姓名,随便写"$ git config --global user.email "你的email"然后需要得到一个SSH 密钥,命令行里输入:$ ssh-keygen -C '你的email' -t rsa然后要你输入SSH密匙的存放位置,可以不管,直接回车使用默认路径。再输入你想要的密码,SSH key就生成了。现在你需要将这个Key提交到 阅读全文
posted @ 2012-12-28 17:51 leechanx 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 问题出现的原因主要是重定向到时候没有带上所有的文件,js,css等;在需要定向到的JSP页面里面添加如下代码,问题解决:在页面的前添加如下代码:下面这行代码加到标签之下:">问题解决。这两行代码其实就是Eclipse新建JSP页面时候自带的代码,以后不能觉得没用就乱删除,我长记性了。 阅读全文
posted @ 2012-12-24 16:42 leechanx 阅读(601) 评论(0) 推荐(0) 编辑
摘要: 问题描述:Myeclipse+tomcat下在写好一个Java方法或者修改了一个方法,并且在jsp页面中调用这个方法,虽然函数没任何问题,但是编译不通过,什么问题? 回答:其实就是当你修改或新增了方法,但是tomcat在网页上执行的时候class文件仍然是在用修改前的旧版本,所以没有识别出来新方法。 解决办法就是重新clean整个project,这样才会生成新的class文件,具体方法是在Myeclipse菜单下选择project-->clean 问题解决。屡试不爽。 阅读全文
posted @ 2012-11-22 20:24 leechanx 阅读(199) 评论(2) 推荐(0) 编辑