2012年8月23日

ctrl c 和 ctrl z的区别

摘要: ctrl-c 发送 SIGINT 信号给前台进程组中的所有进程。常用于终止正在运行的程序。ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程。ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。ctrl-\ 发送 SIGQUIT 信号给前台进程组中的所有进程,终止前台进程并生成 core 文件。Key Function Ctrl-c Kill foreground process Ctrl-z Suspend foreground process Ctrl-d Terminate input, or exit shell Ctrl-s Sus 阅读全文

posted @ 2012-08-23 22:26 天外飞仙2 阅读(339) 评论(0) 推荐(0)

在继承中派生类成员函数的访问权限测试

摘要: 派生类对自身基类的private成员没有访问权限,对基类对象的protected成员没有访问权限,对派生类对象的(基类之外)的private和protected成员具有访问权限。由于C++基础不好,平时也不用它,导致今天才纠正一个非常关键的错误,类的访问权限,是对类而言的,而不是对类的对象而言的。一直都理解错了。这句话都没脸写出来,还是写下来了。下面是一段简答的测试代码。对于调用成员函数的对象test,基类形参,派生类形参三者的访问权限做了测试如下:[cpp] view plaincopyprint?#include <iostream>usingnamespace std; cl 阅读全文

posted @ 2012-08-23 22:25 天外飞仙2 阅读(193) 评论(0) 推荐(0)

CGI程序开发基础

摘要: 1.CGI 脚本结构 当脚本被服务器引发时,服务器常常以两种途径之一向脚本传递信息:GET或POST。这两种方法被称为请求方法。所使用的请求方法是通过环境变量传给脚本,该环境变量叫作REQUEST_METHOD(还定义了另外两种请求方法一HEAD和PUT,但它们不是特别应用于CGI,并且不鼓励使用它们)。1)GET是对数据的一个请求——同样的方法被用于获得静态文档。GET方法以附加在URL后面的参数发送请求信息。这些参数将放在环境变量QUERY_STRING中传给CGI程序。例如,有一个叫作Myprog.exe的脚本,从如下的链接启动它:<a href="cgi-bin/myp 阅读全文

posted @ 2012-08-23 22:25 天外飞仙2 阅读(217) 评论(0) 推荐(0)

Weka内存设置

摘要: 如果你知道weka这个软件,那我猜你应该在学机器学习。用Weka有时候会因为内存不足而报错。它会提示你用命令行修改内存配置。可以直接修改安装目录下的配置。如果Weka版本较新,则打开WEKA目录下的Runweka.ini文件,找到这一行: maxheap=128m 修改128如果版本比较旧,安装目录下没有Runweka.ini,则打开Runweka.bat文件,找到 java -Xmx128m修改128聚拓互联(http://www.ejutuo.com).Net平台至强虚拟主机供应商,是领先的互联网基础应用服务提供商,主要面向全球客户提供域名注册、国内、香港/美国虚拟主机、企业邮箱、智能建站 阅读全文

posted @ 2012-08-23 22:24 天外飞仙2 阅读(504) 评论(0) 推荐(0)

迭代器的使用--关于迭代器的失效

摘要: 这是程序员面试宝典上的一个小题。要点是:使用erase之后迭代器失效。实际上失效是指原来的迭代器,在删除一个元素之后,自动指向了下一个元素。测试代码如下,删除容器中的值为6的所有元素。A 错误的代码为:[cpp] view plaincopyprint?#include <iostream>#include <vector>usingnamespace std; void print(vector<int>); int main() { vector<int> array; array.push_back(1); array.push_back( 阅读全文

posted @ 2012-08-23 22:23 天外飞仙2 阅读(130) 评论(0) 推荐(0)

Vim中的鼠标粘贴---怎样避免排版混乱

摘要: 这个问题困扰了我很久。用鼠标进行大范围的复制粘贴时,由于代码中的注释行的存在,会导致缩进变的越来越长,最后整个后面的都乱了,而且全被注释掉。如果是两个C文件的话,我会用vim中的split分屏,这个方法还是不错的。但是如果从网页上复制再来粘贴的话上述的方法就无效了,比较笨的方法是,采用kate等linux下的其他文本编辑器,直接在上面粘贴,然后将这个文档cp到工作目录下面来。下面介绍一个采用vim中的命令,避免上述繁琐的操作。就一个命令: set paste再按i进入insert模式,用鼠标直接粘贴就行了。参考这里:http://www.worldhello.net/2010/12/08/21 阅读全文

posted @ 2012-08-23 22:23 天外飞仙2 阅读(182) 评论(0) 推荐(0)

malloc,calloc,realloc函数

摘要: 1. malloc函数malloc函数可以从堆上获得指定字节的内存空间,其函数声明如下:void * malloc(int n);其中,形参n为要求分配的字节数。如果函数执行成功,malloc返回获得内存空间的首地址;如果函数执行失败,那么返回值为NULL。由于malloc函数值的类型为void型指针,因此,可以将其值类型转换后赋给任意类型指针,这样就可以通过操作该类型指针来操作从堆上获得的内存空间。需要注意的是,malloc函数分配得到的内存空间是未初始化的。因此,一般在使用该内存空间时,要调用另一个函数memset来将其初始化为全0。memset函数的声明如下:void * memset 阅读全文

posted @ 2012-08-23 22:21 天外飞仙2 阅读(165) 评论(0) 推荐(0)

comparison is always true due to limited range of data type 编译warning

摘要: 采用交叉编译的时候,报了这个错误,原来直接在Fedora下面编译没有问题。原因在于编译器默认char的类型为unsigned类型,和0进行比较时总是true。这个错误发生在stdsoap2.c文件中(104行的宏定义)找个一个网上的代码加以说明:I have the following code[cpp] view plaincopyprint?//Point.h#define WIDTH 8#define HEIGHT 8typedefstruct Point { char x; char y; } Point; //Board.c#include <stdbool.h>// S 阅读全文

posted @ 2012-08-23 22:20 天外飞仙2 阅读(2405) 评论(0) 推荐(0)

多线程中的信号总结

摘要: 还是要用多线程实现,原来的进程和进程间通信,那个版本存活了一个月.下面一文是总结多线程中的信号问题。linux 多线程信号总结(一)1. 在多线程环境下,产生的信号是传递给整个进程的,一般而言,所有线程都有机会收到这个信号,进程在收到信号的的线程上下文执行信号处理函数,具体是哪个线程执行的难以获知。 2 signal函数BSD/Linux的实现并不在信号处理函数调用时,恢复信号的处理为默认,而是在信号处理时阻塞此信号,直到信号处理函数返回。其他实现可能在调用信号处理函数时,恢复信号的处理为默认方式,因而需要在信号处理函数中重建信号处理函数为我们定义的处理函数,在这些系统中,较好的方法是使用s. 阅读全文

posted @ 2012-08-23 22:19 天外飞仙2 阅读(251) 评论(0) 推荐(0)

关于做互联网产品---PM

摘要: 虽然现在需要花时间复习算法还有其他的课程,还是想花点时间理清楚一下关于产品的事情。本文没有什么技术性的东西,都是一些关于做PM的一些想法和体会。这周花了好久天的时间完善了一下之前设计的一个产品,与其说是完善还不如说是重新设计了一次。原来设计的时候觉得几乎完美,但是当很客观的去重新审视自己的“作品”时, 自己也不得不承认做的实在太粗糙了。第一次开始接触PM是在2011年的4月份,当时在上算法导论的时候看到了百度产品设计比赛的宣传海报,留意了一下,后来将自己原来有的一些想法加工成了一个成型的设计方案,实际上是三个,整个文档还是设计的图样都非常的粗糙,没有报太大的希望提交了。直到有一天接到了百度的电 阅读全文

posted @ 2012-08-23 22:18 天外飞仙2 阅读(178) 评论(0) 推荐(0)

C语言中结构体的直接赋值

摘要: 一直记得C语言中,结构体是不可以直接赋值的。我问了三个同学,都说在C++中可以,在C语言中不可以,需要逐一成员赋值或者用memcpy函数。我测试了一下如下的程序:[cpp] view plaincopyprint?#include <stdio.h>#include <stdlib.h>struct test { int a; int b; char ss[10]; }; int main() { struct test t1 = {1, 2, "hello"}; struct test t2; t2 = t1; printf("%d, % 阅读全文

posted @ 2012-08-23 22:17 天外飞仙2 阅读(783) 评论(0) 推荐(0)

(MS面试题) 公共最近父节点(LCA)的O(n)算法

摘要: 这个题目出现在MS公司的一次面试题当中。公共最近父节点,也叫公共最近祖先(Least Common Ancestors),就是寻找二叉书中,两个结点最近的祖先结点。在网上查找资料的时候,看到有Tarjan离线算法,过程比较复杂,我自己写了一个复杂度O(n)的算法,思路比较清晰,算法的长度也只有10行左右。经过简单的测试,可以找到正确结果。欢迎大家指正。整个过程是一次后续遍历二叉树的过程,在遍历的过程中,会得到所有公共父结点,代码中采用了flag表示已经找出了最近的父节点,从而取消之后得到的更远的父节点赋值。从而返回最近的父节点。该方法可以在小范围的修改上,编程寻找多个结点的最近父节点算法。LC 阅读全文

posted @ 2012-08-23 22:17 天外飞仙2 阅读(167) 评论(0) 推荐(0)

线程池的设计与测试

摘要: 编写了一个最基本的线程池类,处理用c_work表示的工作任务。C++还很不熟练,欢迎会C++的提出宝贵的修改意见。程序有注释,所以应该很好读懂。测试程序在下面。[cpp] view plaincopyprint?/////////////////////////////////////////////////////////线程池类 ///////////////////////////////////////////////////////#include <pthread.h>#include <stdlib.h>#include <stdio.h>#i 阅读全文

posted @ 2012-08-23 22:16 天外飞仙2 阅读(120) 评论(0) 推荐(0)

【读书笔记】代码大全

摘要: 2012-05-01 15:24675人阅读评论(0)收藏举报1.软件构建即编程,主要包括编码与调试、详细设计、规划构建、单元测试、集成、集成测试。构建是软件开发的核心活动,主要精力集中之处,产物是源代码。2.软件的隐喻——建筑3.三思而后行:前期准备(设计蓝图和建筑许可证在软件业的等价物,包括问题/产品定义、需求分析、架构)——目的:尽早发现并处理问题,识别并降低风险3.1 前期准备的重要性:类比在一个被污染了的环境中,水虱在受到核沾染的水中游泳,鲫鱼体内积聚了滴滴涕,而沙丁鱼生活的水域又遭受了石油污染,那么,不幸的海鸥由于处在食物链的最后一环,因此,它吃的不仅仅是沙丁鱼体内的石油,还有鲜鱼 阅读全文

posted @ 2012-08-23 22:11 天外飞仙2 阅读(152) 评论(0) 推荐(0)

【读书笔记】企业应用架构模式——并发、事务与锁

摘要: 一、并发问题的产生多线程/进程同时操作(读/写)同一数据二、并发问题的种类丢失更新(lost update)第一类更新丢失(回滚丢失): 当2个事务更新相同的数据源,如果第一个事务被提交,而另外一个事务却被撤销,那么会连同第一个事务所做的跟新也被撤销。也就是说第一个事务做的跟新丢失了。第二类更新丢失(覆盖丢失): 第二类更新丢失实在实际应用中经常遇到的并发问题,他和不可重复读本质上是同一类并发问题,通常他被看做不可重复读的特例。当2个或这个多个事务查询同样的记录然后各自基于最初的查询结果更新该行时,会造成第二类丢失更新。因为每个事务都不知道不知道其他事务的存在,最后一个事务对记录做的修改将覆盖 阅读全文

posted @ 2012-08-23 22:04 天外飞仙2 阅读(143) 评论(0) 推荐(0)

导航