07 2011 档案

摘要:问题描述: 在虚拟机下安装了ubuntu中要输入用户名,一般情况下大家都会输入一个自己的网名或绰号之类的,密码也在这时设置过了。但是当安装成功之后,使用命令#su root,然后输入刚才设置的密码,发现密码错误,至始至终我就设置过一次密码,怎么会错误,原来,在ubuntu系统下,为了安全起见,在安装过程中,系统屏蔽了用户设置root用户。导致很多用户在使用过程中不知道root密码到底是什么。后来网上得到了解决方法:如下。1、先解除root锁定,为root用户设置密码打开终端输入:sudo passwdPassword: <--- 输入你当前用户的密码Enter new UNIX pass 阅读全文
posted @ 2011-07-31 22:21 lidan 阅读(15184) 评论(0) 推荐(0)
摘要:一、概述我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而Expect就使用来实现这种功能的工具。Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。Expect的作者DonLibes在1990年开始编写Expect时对Expect做有如下定义:Expect是一个用来实现自动交互功能的软件套件(Expect[isa]softwaresuiteforautomatinginteractivetools)。使用它系统管理员的可以创建脚 阅读全文
posted @ 2011-07-31 21:49 lidan 阅读(3014) 评论(0) 推荐(0)
摘要:如果class member的定义在class body之外, 那么从该定义的member名称开始出现到定义结束为止,都属于class scope,但是前边的返回类型不属于class scope。如:typedef int Type;Type initVal();class Exercise{public: typedef double Type; Type setVal(Type); Type initVal(){return 0;};private: int val;};Type/*此处的Type为全局里面定义的int*/ Exercise::setVal(Type parm) //err 阅读全文
posted @ 2011-07-31 17:37 lidan 阅读(318) 评论(0) 推荐(0)
摘要:windows中是ctrl+z但是我在vc6下不好使, 有时候要要好几下,有时候ctrl+z后要回车,可以用ctrl+a,也可以用ctrl+d;linux下是ctrl+d istream_iterator<int> iput(cin), eos; ofstream efile("evenfile"); ostream_iterator<int> evenfile(efile, "\n"); ofstream ofile("oddfile"); ostream_iterator<int> oddfil 阅读全文
posted @ 2011-07-30 19:16 lidan 阅读(636) 评论(0) 推荐(0)
摘要:1.当参数推演失败, 产生ambiguous,可以明白指定参数min5<double>(dobj, fobj);2.当编译器无法推演出返回类型时template <class T1, class T2, class T3>T1 sum(T2, T3);指定参数时, 只有尾部的参数可以不写如:sum<double>(fobj, dobj);//返回值类型T1是double, T2是float, T3是doublesum<double, ,double>(fobj, dobj);//错误, 只能省略后面的 阅读全文
posted @ 2011-07-30 15:48 lidan 阅读(365) 评论(0) 推荐(0)
摘要:函数对象的实现简单形式包括一个被重载的函数调用操作符, 如下:还可以加入模板, 或者加入构造函数, 添加私有成员等class Lessthan{public:bool operator()(int a, int b){return a < b;}}典型情况下,函数对象被当做实参传递给算法, 也可以独立的定义函数对象。stable_sort(sentences.begin(), sentences.end(), LessThan());Lessthan lt;bool b = lt(3, 5); 阅读全文
posted @ 2011-07-30 12:49 lidan 阅读(157) 评论(0) 推荐(0)
摘要:在写程序时 经常莫名其妙的出现一些 未定义错误,如下面, 是因为用了c++的名字空间std中的类型;忘了加上using namespace std;语句error C2143: syntax error : missing '; ' before ' < ' error C2143: syntax error : missing '; ' before ' < ' error C2061: syntax error : identifier 'vector ' error C2061: syntax e 阅读全文
posted @ 2011-07-30 11:22 lidan 阅读(359) 评论(0) 推荐(0)
摘要:-r 可以复制目录,递归持续复制,-d:若来源文件为链接文件的属性link file(符号链接),则复制的为 链接文件属性,而不是链接文件指向的源文件,就是不 解引用-s:复制为符号链接(symbolic link),即快捷方式-l:进行硬链接(hard link)的链接档,而不是复制档案本身-p:连同文件的属性一起复制过来[root@www tmp]# ls -l bashrc -rw-r--r-- 1 root root 176 Sep 24 14:02 bashrc <==先观察一下档案情冴 [root@www tmp]# cp -s bashrc bashrc_slink [ro 阅读全文
posted @ 2011-07-27 08:40 lidan 阅读(1153) 评论(0) 推荐(0)
摘要:FHS(Filesystem Hierarchy Standard)针对目录树架构定义出三层目录:/(根目录):与开机系统有关/usr (unix software resource):与软件安装、执行有关/var (variable):与系统运作过程有关根目录(/)的意义与内容:/bin:单人模式下还能被执行的指令/boot:主要放置开机会使用到的档案, 包括linux核心档案, 开机选单,与开机所需配置文件等。/dev:任何装置或接口设备都是以档案的形式存在于这个目录当中/etc:系统主要的配置文件几乎都放置在这个目录内, 如账号密码文件, 各种服务的起始档等/home:系统默认的用户家目 阅读全文
posted @ 2011-07-26 22:22 lidan 阅读(290) 评论(0) 推荐(0)
摘要:我的这个朋友把这篇文章取名叫Build Your ProgrammingTechnicalSkills,我实在不知道用中文怎么翻译,但我在写的过程中,我觉得这很像一个打网游做任务升级的一个过程,所以取名叫“技术练级攻略”,题目有点大,呵呵,这个标题纯粹是为了好玩。这里仅仅是在分享Mailper和我个人的学习经历。(注:省去了我作为一个初学者曾经学习过的一些技术(今天明显过时了),如:Delphi/Power builder,也省去了我学过的一些我觉得没意思的技术Lotus Notes/ActiveX/COM/ADO/ATL/.NET ……) 前言 你是否觉得自己从学校毕业的时候只做过小玩具.. 阅读全文
posted @ 2011-07-26 21:05 lidan 阅读(199) 评论(0) 推荐(0)
摘要:醋坛酸味灌,味落跳福逗醋, 初等:4个,(), [], ->, .;坛, 单目, 9个, !, ~, ++, --, -(负号), +, *, &, sizeof酸, 算术, 5个, *, /, %, +, -味, 位移, 2个, <<, >>灌, 关系, 6个, <, >, <=, >=, ==, !=味, 位运算, 3个,&, |, ^(按位异或)落, 逻辑, 2个, &&, ||跳, 条件, 1个, ?:(三目, 自右向左)福, 赋值, 11个,=, +=, -=, *=, /=, %=, >&g 阅读全文
posted @ 2011-07-24 16:42 lidan 阅读(162) 评论(0) 推荐(0)
摘要:简介 名称的英文全称为:Standard Application Framework Extensions 所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。 预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。 编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在projec... 阅读全文
posted @ 2011-07-24 11:52 lidan 阅读(785) 评论(0) 推荐(0)
摘要:在使用std::list的过程中, 编译器报warning 如下:warning C4786: 'std::reverse_bidirectional_iterator<std::list<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > 阅读全文
posted @ 2011-07-24 11:18 lidan 阅读(6543) 评论(0) 推荐(0)
摘要:char *screenInit(int height, int width, char background = ' ');char *screenInit(int height = 4, int width = 4, char background);正确;char *screenInit(int height, int width, char background = ' ');char *screenInit(int height = 4, int width = 4, char background = ' ');//redefinit 阅读全文
posted @ 2011-07-23 22:23 lidan 阅读(273) 评论(0) 推荐(0)
摘要:int a[][];错误,多维数组的规则是 只有最后一维的大小能省略, 可以定义为int a[][5];int (*pa)[];不好,应该int (*pa)[size];声明可以, 但是赋值的时候就会有错误,例如:int a[] = {1, 2, 3};pa = &a;//cannot convert parameter 1 from 'int (*)[3]' to 'int (*)[]'所以定义指向数组的指针的时候最好把数组的大小确定; 阅读全文
posted @ 2011-07-23 21:38 lidan 阅读(156) 评论(0) 推荐(0)
摘要:const 引用:1. int i = 20; const int& refer = i; i = 12;可以, refer的值会变, 但是不能给refer赋值2 int i = 20; int* &rval = &i;错误, a refrence is not to const cannot be bound to a non-lvalue 因为&i不是一个左值, 所以ral必须声明为const型的 int* const &rval = &i;数组的引用: int ia[10]; int (&iaref)[10] = ia;这样就得到了 阅读全文
posted @ 2011-07-23 11:54 lidan 阅读(163) 评论(0) 推荐(0)
摘要:指向数组的指针:int(*p)[5];定义了一个指向数组元素为int型的元素个数为5的一维数组;也可以理解为二维数组的首元素就像int*p指向int型可以理解为一维数组的首元素;也可以理解为*p为一个指针,指针里面的内容是一个有5个int值的数组;*p=a[5];其中,"类型说明符"为所指数组的数据类型。"*"表示其后的变量是指针类型。"长度"表示二维数组分解为多个一维数组时,一维数组的长度,也就是二维数组的列数。注意,"*(指针变量名)"两边的括号不可少,如缺少括号则表示的是指针数组。p指向二维数组的第一个元素a 阅读全文
posted @ 2011-07-23 11:23 lidan 阅读(430) 评论(0) 推荐(0)
摘要:在下面的代码中a1调用const版本,a2调用非const版本。 const a a1; a a2; a1.x(); a2.x(); 后面加const表示在该函数中不能对类的数据成员进行改变,比如: class A { private: int aa; public: int x() { return aa++; } //这可以 int x() const { return aa++;//这错误 } }; 当然有特殊情况,就是用mutable关键字修饰过的成员变量可以在声明为const 函数中被改变。 关于mutable: 关键字mutable是C++中一个不常用的关键字,他只能... 阅读全文
posted @ 2011-07-16 20:05 lidan 阅读(2734) 评论(0) 推荐(0)