自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 设计模式C++版_1_简单工厂模式

本文是学习设计模式的学习笔记,文中引用了如下作者(书籍、博客)的内容,实例程序在《设计模式C++版》的基础上有所改动,特此声明。Peixing Yang的《大话设计模式C++源代码》程杰的《大话设计模式》K_Eckel的《设计模式C++版》 http://k-eckel.cnblogs.com/EoF的cbf4life的《24种设计模式介绍与6大设计原则》 http

2013-06-17 19:02:25 494

原创 C++ Templates读书笔记1__函数模板

本文是《C++ Templates》一书的学习笔记,如果发现有错误或者不明确的地方,欢迎指正,如果对本文有更好的建议,同样也欢迎提出,谢谢。模板是泛型编程的基础,所谓泛型编程,就是以独立与任何特定类型的方式编写代码。函数模板的示例:template inline const T &max(const T &a, const T &b){ T tmp = (a > b) ?

2013-06-04 15:45:11 812 1

原创 explicit关键字

今天在研读google c++编码规范时,在构造函数一节中提到了explicit关键字,规范中要求“对单参数构造函数使用C++关键字explicit”。原文定义为:Normally, if a constructor takes one argument, it can be used as a conversion. For instance,  if  you  define Foo:

2013-05-24 13:17:40 699 2

原创 socket创建流程及代码示例

socket操作1.1 创建socketint socket(int domain, int type, int protocol);    domain: 确定通信的特性                AF_INET          IPv4因特网域                AF_INET6        IPv6因特网域

2013-05-24 11:04:02 683

原创 消息队列创建流程及代码示例

消息队列是消息的链接表,存放在内核中并由消息队列标示符标识。1. 创建或打开一个队列    int msgget(key_t key, int flag);    key: 键 由ftok()生成        key_t ftok(const char* path, int id);    flag: IPC_CREAT 或 IPC_EXCL

2013-05-24 11:03:59 1143

原创 信号及代码示例

1.    信号的概念    每个信号都有一个以SIG开头的名字。    在头文件中,这些信号都被定义为正整数。不存在编号为0的信号。    在信号发生的时候,可以进行一下处理:    1)忽略此信号,有两种信号不能被忽略(SIGKILL,SIGSTOP)。    2)捕捉信号,通知内核在某种信号发生时调用一个用户函数。    3

2013-05-24 11:03:57 832

原创 【APUE】进程控制

本文介绍进程控制,包括创建进程,执行程序和进程终止1.进程标识符    每一个进程都有一个非负整数表示的唯一进程ID,pid。虽然pid是唯一的,但是可以重复使用,当进程结束的时候,    其pid就可以在次使用了。    系统中常有一些专用进程:    0:通常是调度进程,常称为交换进程,因为不使用磁盘中的任何程序,所以又称为系统进程。    1:通常是init进

2013-05-24 11:03:55 561

原创 C字符串函数总汇解析

C字符串函数总汇解析函数名: stpcpy功 能: 拷贝一个字符串到另一个用 法: char *stpcpy(char *destin, char *source);程序例:#include #include int main(void){char string[10];char *str1 = "abcdefghi";stpcpy(string, str1);printf("%sn", stri

2013-05-24 11:03:53 522

原创 【APUE】进程环境

本文章介绍进程的环境1.main函数    c程序总是从main函数开始执行的,其原型是        int main(int argc, char **argv);        //argc是命令行参数的个数        //argv是指向参数的各个指针所构成的数组2.进程终止    有8种方式可以让进程终止,其中前5种为正常终止    1.从main返回    2.调用exit    3

2013-05-24 11:03:50 371

原创 【APUE】系统数据文件和信息

本文章介绍有关系统数据文件和信息的函数1.一切皆文件    linux操作系统的特点就是一切皆文件,所以仅通过操作文件就可以操作linux的所有。2.口令文件    /etc/passwd    这些字段定义在中定义的passwd结构中        char *pw_name        //用户名        char *pw_passwd

2013-05-24 11:03:48 514

原创 【APUE】标准I/O库

本文章说明标准I/O库1.流和FILE对象    对于文件IO都是针对于文件描述符的,但是对于标准I/O,则是针对于流进行的    当用标准I/O库打开一个文件的时候,我们已使一个流和一个文件相关联    对于ASCII字符集,一个字符用一个字节表示,对于国际字符,一个字符可用多个字节表示    标准I/O文件流可用于单字节或多字节字符集    流的定向决定了所读、写的文件

2013-05-24 11:03:46 411

原创 关于指针的一个面试题

前几天,去一个公司面试实习生,遇到下面这个题:  void test(void){ char *str = NULL; get_memory(str); strcpy(str, "hello world"); printf("%s\n", str);}voidget_memory(char *p){ p = (char *)

2013-05-24 11:03:43 392

原创 【APUE】文件和目录

本文章将描述文件系统的其他特性和文件的性质。1 stat、fstat、和lstat函数    获取文件的信息结构    #include     int stat(const char *restrict pathname, struct stat * restrict buf);    int fstat(int filedes, struct stat *buf);

2013-05-24 11:03:41 429

原创 【APUE】文件I/O

1 文件描述符    所有打开的文件都通过文件描述符引用,文件描述符是一个非负整数,本质是一个数组下标。    当打开或创建一个文件的时候,内核向进程返回一个文件描述符。    open,creat返回文件描述符来标识该文件,将其作为参数传递给write和read。    UNIX系统shell使用文件描述符0与进程的标准输入相关联,1和标准输出相关联,2和标准错误输出相关联。:2 open函数 

2013-05-24 11:03:39 422

原创 【内核&驱动】并发和竞态【1】

1.导致并发执行的原因    硬件中断服务    SMP(对称多处理)    内核抢占    schedule()2.scull的缺陷if(!dptr->data[s_pos]){        dptr->data[s_pos]= kmalloc(quantum, GFP_KERNEL);        if(!dptr->da

2013-05-24 11:03:36 424

原创 【内核&驱动】字符设备驱动程序【3】

open和releaseopen方法提供给驱动程序以初始化的能力,open方法应完成以下工作    检查设备特定的错误    如果设备是首次打开,则对其进行初始化工作    如有必要,更新f_op组件    分配并填写置于filp->private_data里的数据结构int(*open)(struct inode*inode, struct

2013-05-24 11:03:34 459

原创 【内核&驱动】字符设备驱动程序【2】

一些重要的数据结构(VFS核心结构体) 1.super_block和mount一一对应,这也意味着如果mount操作,在内核中分配新的结构体,存储分区信息umount时,VFS就把该结构体释放掉mount几次内核中就有几个super_block结构体2.inode和打开文件一一对应,记录文件信息,关闭文件时,如果内存不紧张,不会释放,如果多个人同时打开一个文件,VF

2013-05-24 11:03:32 328

原创 【内核&驱动】字符设备驱动程序【1】

1.编写驱动程序的第一部就是定义驱动程序为用户提供的能力(机制);2.举例在计算机内存之上实现若干设备抽象:scull:simple character Utility for Loading Localities, 区域装载的简单字符工具  scull的源代码实现了以下设备scull0 ~ scull3        这四个设备分别由一个全局且持久的内存区域组成scu

2013-05-24 11:03:30 451

原创 cdev结构

在Linux2.6内核中一个字符设备用cdev结构来描述,其定义如下:struct cdev {        struct kobject kobj;        struct module *owner;   //所属模块        const struct file_operations *ops;                   //文件操作结构,在写驱动时,

2013-05-24 11:03:27 435

原创 linux 系统调用执行过程

linux 系统调用执行过程 转载简单总结一下linux的系统调用过程:层次如下:用户程序------>C库(即API):INT 0x80 ----->system_call------->系统调用服务例程-------->内核程序先说明一下,我们常说的用户API其实就是系统提供的C库。系统调用是通过软中断指令 INT 0x80 实现的,而这条I

2013-05-24 11:03:25 651

原创 C语言预处理命令总结大全

C程序的源代码中可包括各种编译指令,这些指令称为预处理命令。虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境。本节将介绍如何应用预处理程序和注释简化程序开发过程,并提高程序的可读性。ANSI标准定义的C语言预处理程序包括下列命令:#define,#error,#include,#if,#else,#elif,#endif,#ifdef,#ifndef,#undef,#line,

2013-05-24 11:03:23 348

转载 一份比较详细的DOS命令说明

1 echo 和 @ 回显命令 @                        #关闭单行回显 echo off                #从下一行开始关闭回显 @echo off                #从本行开始关闭回显。一般批处理第一行都是这个 echo on                  #从下一行开始打开回显 echo         

2009-12-02 15:59:00 254

《数据结构(C语言版)》配书光盘+DSDemo

《数据结构(C语言版)》配书光盘+DSDemo

2009-12-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除