摘要: 在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理.C初学者可能对预处理器没什么概念, 这是情有可原的: 一般的C编译器都将预处理, 汇编, 编译, 连接过程集成到一起了. 编译预处理往往在后台运行. 在有的C编译器中, 这些过程统统由一个单独的程序来完成, 编译的不同阶段实现这些不同的功能. 可以指定相应的命令选项来执行这些功能. 有的C编译器使用分别的程序来完成这些步骤. 可单独调用这些程序来完成. 在gcc中 阅读全文
posted @ 2013-04-02 14:58 landy聪 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 一.Crontab介绍crontab命令的功能是在一定的时间间隔调度一些命令的执行。1.1 /etc/crontab文件在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。如:[root@dave ~]# cat /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# run-parts01 * * * * root run-parts /etc/cron.hourly02 4 * * * root run-parts /et 阅读全文
posted @ 2013-03-24 09:48 landy聪 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 最近工作空闲下来了,于是就想利用这段时间学习一下Linux.首先得有一个Linux环境,因此利用自己的电脑,安装了双系统。因为公司大部分Linux都是安装的CentOS,所以我也选择了这个版本。 1.下载CentOS的安装盘 我的电脑是32位的,所以下载了i386版本的CentOS-6.2-i386-bin-DVD.iso 注:应该下载硬盘安装版,而不是liveCD版 liveCD (光盘版)是可以直接在光盘上运行的版本,运行后可以再选择安装到硬盘中。 bin-DVD(硬盘安装版) 是一个纯安装版本,一般推荐用这个,因为 LiveCD 安装的时候很多软件包要从网络去下载,会很慢。 ... 阅读全文
posted @ 2013-03-22 21:12 landy聪 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 由于redhat 没有注册,所有不能使用它自身的源进行更新,所以我们可以通过更换源来进行相关更新:更改yum的源,即更换/etc/yum.repos.d/rhel-debuginfo.repo 这个文件。进入/etc/yum.repos.d/目录,终端中输入wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo即可在此目录下得到CentOS-Base.repo文件,这是centos的源文件,只需将其重命名为rhel-debuginfo.repo即可,以前的文件做个备份。 阅读全文
posted @ 2013-03-19 14:24 landy聪 阅读(167) 评论(0) 推荐(0) 编辑
摘要: /etc/fstab 官方文档1 什么是fstab2 fstab文件示例3 fstab 文件组成4 文件系统标识4.1 Kernel naming4.2 UUID4.3 Label5 建议5.1 atime 参数5.2 tmpfs5.2.1 修正因 /var 分区造成关机异常问题5.3 解决包含有空格的路径名无法使用的问题5.4 外部设备6 用fstab自动挂载FAT32和NTFS分区7 相关内容8 参考资料什么是fstab 文件fstab包含了你的电脑上的存储设备及其文件系统的信息。它是决定一个硬盘(分区)被怎样使用或者说整合到整个系统中的唯一文件。这个文件的全路径是/etc/fstab。它 阅读全文
posted @ 2013-03-13 22:32 landy聪 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 1 指向类成员的指针1.1 概念与常规指针不同,一个指向类成员的指针并不指向一个具体的位置,它指向的是一个类的特定成员,而不是一个特定对象里的特定成员。通常将指向数据成员的指针看作为一个偏移量。大多数编译器都将指向数据成员的指针实现为一个整数,其中包含被指向的成员的偏移量,另外加上1(加1是为了让值0可以表示一个空的数据成员指针)。这个偏移量告诉你一个特定成员的位置距离对象的起点有多少字节。声明一个类成员指针的语法如下:TYPE classname::* var;eg:class C{ public: int a_;};int c::*pimC;//一个指针,指向C的一个int成员C ac;C 阅读全文
posted @ 2013-03-09 14:50 landy聪 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 1 仿函数的概念仿函数,又名函数对象,是一个定义了operator ()的对象。仿函数的主要功能代码在仿函数类的operator ()体内完成。仿函数的妙处:(1) 仿函数比一般函数更灵巧,可以用有状态,对于仿函数可以同时拥有两个状态的不同实体。(2) 每个仿函数都有其型别,通过传递不同型别的仿函数当作template参数给容器,可以构造出型别不同的容器。(3) 执行速度上,仿函数通常比函数指针快。很多stl算法有一个函数参数,例如remove_if,for_each等,这个函数可以是普通的全局函数,仿函数,类的成员函数(非static,static可以作为全局函数使用),类的成员函数比较特殊 阅读全文
posted @ 2013-03-09 11:24 landy聪 阅读(592) 评论(0) 推荐(0) 编辑
摘要: 1 容器的共通能力和共通操作1.1容器的共通能力容器三个核心能力是:(1)容器元素必须能够拷贝所有容器提供的都是"value"语意而非"reference语意"。元素插入容器内时,实施的是拷贝操作,因此STL容器的每一个元素都必须能够拷贝(存在public copy构造函数),否则容器内的元素只能是指向对象的指针。(2)每个容器都提供“可返回迭代器”的函数迭代器是容器和算法之间的“桥梁”,算法通过迭代器来操纵容器内的元素。(3)调用者必须确保传给操纵函数的参数符合需求一般而言,各项操作并非绝对安全,调用者必须确保传给操纵函数的参数符合需求。比如:对于利用 阅读全文
posted @ 2013-03-06 18:41 landy聪 阅读(313) 评论(0) 推荐(1) 编辑
摘要: 1 迭代器迭代器是一种“能够遍历某个序列内的所有元素”的对象。它可以透过与一般指针一致的接口来完成自己的工作。迭代器是一种抽象的概念:任何东西,只要行为类似迭代器,就是一种迭代器。迭代器中“能力”是一个很重要的概念,据此可将迭代器划分成不同的类型。2 迭代器的类型迭代器类型能力供应者Input(输入)迭代器向前读取(read)istreamOutput(输出)迭代器向前写入(write)ostream,inserterForward迭代器向前读取和写入Bidirectional(双向)迭代器向前和向后读取和写入list,set,multiset,map,multimapRandom acces 阅读全文
posted @ 2013-03-04 19:50 landy聪 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。静态库和动态库的区别1. 静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。2. 动态函数库 这类库的名字一般是libxxx.so;相对于静态函数库,动态函数库在编译的时候 并没有被编译进目标代码中,你的程序执行到相关函数时才调用该函数库里的相应函数 阅读全文
posted @ 2013-03-02 14:41 landy聪 阅读(181) 评论(0) 推荐(0) 编辑