07 2014 档案
摘要:.PHONY:clean runCC=gccCFLAGS=-Wall -gBIN=./bin/mainINCLUDE=-I./includeOBJS=./obj/epoll_t.o ./obj/server.o ./obj/network.o$(BIN):$(OBJS) $(CC) $...
阅读全文
摘要:0.春阳语录,代码嵌套三层以上就是一坨垃圾。因此良好的编程风格从封装开始。1.封装select服务器模型 1.1 如何封装?将select需要的数据结构都封装成结构体,通过参数在函数之间传递,将固定的操作封装成相应的函数。 1.2 封装后的程序: 1.2.1 封装的头文件 select_t...
阅读全文
摘要:1.迭代服务器模型 1.1 迭代服务器是处理多个请求时一种最简单直接的思路,即使用while循环,它不具有并发能力,即必须一个一个的处理客户的请求。 1.2 程序示例。#include "def.h"int listenfd_init(); //返回一个处于监听状态的套接字描述符void do...
阅读全文
摘要:1.select 模型 1.1 select 函数原型如下,其中 nfds 表示的描述符的最大值加1(因为这里是左闭右开区间),中间三个参数分别表示要监听的不同类型描述符的集合,timeout用来表示轮询的时间间隔,这里用NULL表示无限等待。 1.2 使用 select函数编写客户端程...
阅读全文
摘要:#ifndef __DEF_H__#define __DEF_H__#include #include #include #define TRUE 1#define FALSE 0//任务结构体typedef struct{ void (*thread_function_ptr_) (void...
阅读全文
摘要:1. readn 和 writen 1.1 基础巩固: read 和 write 函数的返回值 1.1.1 read 函数原型为:ssize_t read(int fd, void* buf, size_t count); (这里的 void *在标准 C 中表示通用指针即任意类型的指针都可...
阅读全文
摘要:1. fork 1.1 通过 fork 创建的父子进程对于fork之前打开的fd,共享文件偏移量。这是因为,父进程fork一个子进程后,会有自己的进程表项,因此二者各有一套相同的文件描述符表,他们共享了文件表项,因而也就共享了偏移量。此外,close 的关闭采用的是引用计数,当执行close时,是...
阅读全文
摘要:1.基础知识巩固 1.1 中断分为两类: a)硬中断,就是通常所说的中断,中断处理程序运行在内核态,需要一定的硬件支持; b)软中断,是在软件层次上对中断的一种模拟,就是常说的信号,它的处理程序运行在用户态。它是软件级别的,不需要特定的硬件支持。 1.2 常见的信号:(用kill -...
阅读全文
摘要:1. dup 函数 1.1 dup 函数用来复制一个文件描述符,复制后的文件描述符可以正常使用(见例1)。dup函数返回当前文件描述符表中一个最小的可用的文件描述符(Linux下分配文件描述符的规则是:寻找最小可用),这个过程由系统来完成。dup函数成功执行后,两个文件描述符fd_1 和 fd_2...
阅读全文
摘要:1.再说智能指针 1.1 为什么要用智能指针?对于一个指针,它指向一个动态分配内存的对象,若同时有多个指针指向该对象,那么当我们delete的时候,就会出现delete 一个无效内存的错误,因为该对象已经被delete过了,所以这就造成了错误。针对这一情况,我们想到,new 和 delete 必须...
阅读全文
摘要:1. 通过子类对象来调用函数: a)从父类继承而来的函数,可以正常使用; b)子类自行添加的函数,可以正常使用; c)子类编写和父类重名的函数,不管是否改变了参数,调用的都是子类的版本,如果需要调用父类的版本,需要显示指定父类名。 例1:#include #include using nam...
阅读全文
摘要:0.两个要点a) 一个空类,编译器自动合成默认无参构造函数、析构函数、拷贝构造函数、赋值运算符。b) 在编写类的时候,必须严格区分对象是否可复制。1.运算符重载之 string类1.1 运算符重载的几个要点:a) 运算符重载可以有成员函数和友元函数的形式,后者比前者多一个参数。b) =和+=必须重载...
阅读全文
摘要:1.Map1.1 map是一种pair的容器,pair的种类是pair。map采用下标访问一个已存在的key, 会更新value,访问map中不存在的元素时,会增加一个新的键值对。map中的元素按照key进行从小到大排列。map的底层实现是采用二叉树,一般是使用红黑树。#include #inclu...
阅读全文
摘要:1.默认拷贝构造函数1.1 编译器自动为我们合成一个拷贝构造函数。A(const A &).1.2 对象复制的时机:a) 显式复制。b) 使用对象做形参c) 使用对象做返回值d) 往容器中放入对象#include #include #include using namespace std;/* *用...
阅读全文
摘要:1. 顺序容器的初始化操作 1.1 顺序容器(vector,list,deque)的五种初始化方法,以 vector 为例。 #include #include #include using namespace std;int main(int argc, const char *argv[]){ //1.定义空数组 然后后面追加 vector vec1; vec1.p...
阅读全文
摘要:1.函数指针1.1 普通成员函数指针包含类名信息以及const属性,指向具体函数是必须加上&符号。#include using namespace std;class Test{ public: void setValue(const string &s, int a){ ...
阅读全文
摘要:1.程序框架分析:a)首先将mutex, condition, queue 封装成各自的类,方便对外提供接口函数,这里要注意 condition的封装,一个条件变量和一把锁是一起用的,因此在初始化 condition 对象的时候要用一个 mutex 对象去初始化,在pthread_cond_wait...
阅读全文
摘要:1.封装Mutex 1.1 封装前先总结一下常用的mutex操作有: pthread_mutex_init(&mutex, NULL ); //初始化一个互斥锁 pthread_mutex_destroy(&mutex); //销毁一个互斥锁 pthread_mutex_lock(&mutex); //上锁 pthread_mutex_unlock(&mutex);// 解锁 1.2 ...
阅读全文
摘要:1. 程序一,错误之处,当一个消费者在等待,此时一个生产者生产一个产品后把该消费者的等待线程激活,但是此时她还没有抢到锁,这个时候又来了一个消费者,并且互斥锁正好被它抢走,那么经过if判断此时队列不空,新来的消费者消费完释放锁离开,这时前面的被激活的那个消费者抢到了锁,当它在进行消费的时候就发生了错...
阅读全文
摘要:1.要求:将一篇文章录入,然后实现查询:a)查询可以输入字符或者字符串b)将包含它们的单词输出c)允许重复d)如果输入查询有空格,当多个处理Ex: 输入ro,应该打印出“microsift”输入”he wr”,则查询两次1.1 不用类实现#include #include #include #inc...
阅读全文
摘要:0.不要试着从C++编译器的角度理解问题,而是从程序的语义着手。1.控制台标准输入输出流的使用1.1IO对象不可复制或者赋值。因此使用IO对象做参数必须使用非const 引用参数(非const因为对IO对象的读写会改变其状态)。1.2当cin输入非法数据时,fail置为1,当cin遇到文件结尾(ct...
阅读全文
摘要:1.C语言内存没有属性,本质就是一段01区域, 没有所谓的类型int, char, float 等等,仅仅表示一段内存空间。上代码。 1 #include 2 #include 3 4 typedef struct tag{ 5 int a; 6 int b; 7 }NODE;...
阅读全文
摘要:1.函数指针的定义对于函数 void test(int a, int b){ //}其函数指针类型是void (* ) (int , int), 注意这里第一个括号不能少, 定义一个函数指针,void (* pfunc)(int , int) ,其中pfunc就是函数指针类型, 它指向的函数类型必...
阅读全文
摘要:总结:1.二维数组名是指向一位数组的指针,本例中,其类型为 int (*)[4],在传递的过程中丢失了第一维的信息,因此需要将第一维的信息传递给调用函数。关于二维数组名代表的类型,可通过下面的例子看出。 1 /*********************************************...
阅读全文
摘要:1 /************************************************************************* 2 > File Name: pass_fd.c 3 > Author:Monica 4 > Mail:lili...
阅读全文
摘要:1 /************************************************************************* 2 > File Name: main.c 3 > Author:Monica 4 > Mail:liling222@1...
阅读全文
摘要:1 /************************************************************************* 2 > File Name: my_socket.h 3 > Author:Monica 4 > Mail:liling...
阅读全文
只有注册用户登录后才能阅读该文。
只有注册用户登录后才能阅读该文。

浙公网安备 33010602011771号