自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 问答 (1)
  • 收藏
  • 关注

原创 Linux[C] 求教《Linux程序设计》中一个malloc内存分配的问题

其中在http://bbs.chinaunix.net/thread-1698950-1-1.html链接中提到如下疑问:------》在第7章里面,有两个介绍linux内存管理的例子,把我搞的很糊涂。    第一个例子:每次调用 malloc(1024 * 1024) 分配1M的内存,并往刚分配的内存中写入一些数据。循环512次,总共分配了512M的内存。该程序运行的机器内存大小在256M...

2018-12-26 14:48:43 414

原创 [自动化测试]【shell脚本】blink reset测试

linux系统的blink reset测试,即保证进程crash后能自动复归的测试。1. 测试实验 :1)进程运行;2)kill -9 进程pid2. 测试结果:出现crash墓碑tombstone文件(1/10)。 为了方便再现并且修复后的自动化测试,书写shell脚本如下:while [ 1 ]do ps | grep mediabxxx | grep -v "gr...

2018-11-09 09:59:56 679

原创 【linux线程】线程安全之条件变量

条件变量用法:条件变量一般和互斥量配合,保护线程安全或者完成同步数据的功能。#include <pthread.h>#define INFINITE 0xFFFFFFFF#ifndef ETIMEDOUT#define ETIMEDOUT 10060#endifclass CWaitObj;class CWaitObj{public: expli...

2018-10-16 12:22:07 234

原创 解决python中因为字符串编码导致的错误

python编程实例:1. 将抓取的网站数据,保存到excel表格中,在sheet.write()函数时,报错如下:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128) 百度上一般的解决方法如下:import sysreload(sys)sys.setdef...

2018-02-23 22:00:26 680

原创 python 爬取新浪网站 NBA球员最近2个赛季库里前20场数据

python 爬取新浪网站 NBA球员最近2个赛季库里前20场数据1. 采用post方式2.保存数据到excel表格

2017-12-09 22:37:22 1680

原创 百度开发工程师的面试题(导航部门)

1. 程序改错题:#include "string.h"#define TONUM(x) x - '0'int matoi(char* p) { int i ; int res;  for (i = 0; i < strlen(p);i++) { res = res * 10 + TONUM(p[i]);  } r...

2017-08-19 19:58:51 377 1

原创 Windows核心编程之线程

线程组成两部分:1. 一个线程的内核对象,操作系统用它管理线程。2. 一个线程栈,用于维护线程执行时所需的所有函数参数和局部变量。何时创建线程?举例:操作系统的Windows Indexing Services,磁盘碎片整理程序等,都是使用多线程进行性能优化的例子。

2017-08-15 09:18:49 275

转载 COM组件非常好的分析文章

转载于http://blog.sina.com.cn/s/blog_470ecf2a01014ahy.html原文地址:COM三大接口:IUnknown、IClassFactory、IDispatch。[转载]作者:海贝(1)COM组件有三个最基本的接口类,分别是IUnknown、IClassFactory、IDispatch。 COM规范规定任何组件、任何

2017-08-14 21:09:27 313

原创 windows核心编程之进程

什么是进程?进程是一个正在运行程序的实例。由两部分组成:一个内核对象,用于管理进程以及一个地址空间,包含所有可执行文件或DLL模块的代码和数据,此外还包含动态内存分配。分析进程之前,先看下windows程序是如何创建的?windows应用程序分为CUI和GUI程序,即控制台用户界面和图形用户界面。不同的应用程序链接器开关不同,/SUBSYSTEM:CONSOLE和/SUBSYS

2017-08-13 20:53:37 204

原创 windows操作系统之跨进程边界共享内核对象

内核对象:用来管理进程,线程,文件等诸多种类的大量资源。内核对象只是一个内存块,由操作系统分配,并只能由操作系统访问。内核对象的句柄表(由进程中的所有线程访问):索引指向内核对象内存块的指针访问掩码标志10xF00000000x???????0x0000000内核对象如何被操作呢?Windows提供了大量的API函数用

2017-08-13 15:56:51 364

转载 SEH的非常好的总结

深入解析结构化异常处理(SEH)尽管以前写过一篇SEH相关的文章《关于SEH的简单总结》, 但那真的只是皮毛,一直对Windows异常处理的原理似懂非懂, 看了下面的文章 ,一切都豁然开朗. 1997年文章,Windows技术的根一直没变: http://www.microsoft.com/msj/0197/exception/exception.aspxMatt Piet

2017-08-12 22:55:33 4723 2

原创 链表的反转

链表的反转,采用头插法链表程序如下:#pragma  once#include "stdlib.h"#includeusing namespace std;typedef struct sNode{int data;sNode *next;}Node;void InitList();void ReverseLi

2017-08-05 12:46:35 148

原创 从无头单链表中删除节点

删除无头单链表:程序实现很简单,主要是思路如果打不开的话,就无从下手。如果是带有头节点的链表,直接从头部遍历,找到需要删除的节点,然后直接删除删除的方式,加入目前的节点为node ,前一个节点即为prepre->next = node->next;delete node;node = null;但是目前没有头节点,所以没有其他方式找到node的前驱节点。按照

2017-08-04 18:43:38 845

原创 求二进制数中的1的个数

第一种最常见的解法:原理是:采用C语言十进制转换成二进制的方法去解题程序代码如下:#include "Count.h"int Count(char b){int number = 0;while (b){if (1 == (b%2)){number++;}b /= 2;

2017-08-01 16:33:22 185

原创 一道考察类的纯虚函数定义,静态变量等C++题目

程序原题如下:#pragma  onceclass mml{private:static unsigned int x;public:mml(){  x++;  }mml(static unsigned int&){  x++;  }~mml(){  x--;  }virtual  mon(){} = 0;  //缺少类型, 纯虚函数没有{}

2017-08-01 15:48:39 413

原创 STL算法分析

STL power算法:templateT power(T x ,Iteger n, MonoidOperation op){if(n == 0) return identity_element(op); //证同元素,如果是0的话,代表加法的正同元素else{while((n & 1) == 0){ //n为偶数的时候

2017-07-30 15:36:14 176

原创 STL之序列式容器难点分析

Vector容器又称作变长数组,随着元素的增加,其内部机制会自行扩充空间以容纳新元素。其实现的原理是:在vector中有三个容器分别表示容器目前使用空间的头,尾和可用空间的尾。即容器分配的内存要大于等于实际使用的内存。如果vector无使用内存的话,容器会重新分配一块更大的空间,然后将数据移动到新的空间,然后将旧空间释放掉。所以vector有两个成员函数,size()代表使用空

2017-07-27 22:49:04 197

原创 C++之模板元编程

关于模板原编程知识强烈推荐:http://blog.jobbole.com/83461/,非常好!这篇文章通过举例详细介绍了模板的模板参数,模板特例化,模板实例化以及编译链接等模板基础知识。本文主要分析文章中的模板元编程例子:首先复述一下模板元编程,以下标红或者加粗的地方是模板元编程的精髓:从编程范型(programming paradigm)上来说,C++

2017-07-27 22:19:01 1132

原创 STL之迭代器与traits编程技法

iterator模式定义如下:提供一种方法,使之能够依序巡防某个聚合物所含的各个元素,而又不暴露该聚合物的内部表达式。迭代器是一种smart pointer:举例auto_ptrtemplateclass auto_ptr {public :explicit auto_ptr(T *p = 0):pointee(p){}~auto_ptr(){ delete

2017-07-25 20:15:35 207

转载 设计模式之观察者模式

观察者模式概念:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。“Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automat

2017-07-24 21:54:29 136

原创 STL之空间配置器

SGI特殊的空间配置器,构成如下:     --------------- 定义了全局函数construct()和destroy()                        ---------------          定义了一、二级空间配置器,alloc;                        --------------- 定义了全局函数,用来填充,复制内存数据。

2017-07-23 17:04:31 127

原创 面试疑难问题

问题1:char *strA()// 局部变量数组不能做为返回,会直接失效导致崩溃{char str[] = "hello world";        return str;}//struct 内存//多重继承中的变量值//动态链接库 导出函数和导出类//设计模式的单例模式//

2017-07-21 21:29:33 237

原创 C++之new 和 delete

new 和 delete要成对使用,且要采取相同形式。使用new时,会发生2件事,1.内存被分配出来;2.针对此内存会有一个(更多)构造函数被调用;使用delete,发生2件事,1.针对此内存的析构函数被调用;2.内存被释放;举例:std::string * stringPtr1 = new std::string;std::string * stringPtr2 =

2017-07-19 22:03:11 331

转载 设计模式之多用组合,少用继承

对类的功能的扩展,要多用组合,少用继承。 对于类的扩展,在面向对象的编程过程中,我们首先想到的是类的继承,由子类继承父类,从而完成了对子类功能的扩展。但是,面向对象的原则告诉我们,对类的功能的扩展要多用组合,而少用继承。其中的原因有以下几点: 第一、子类对父类的继承是全部的公有和受保护的继承,这使得子类可能继承了对子类无用甚至有害的父类的方法。换句话说,子类只希望继承父类的一部分方法,怎么

2017-07-18 21:51:59 5975

原创 SQL Server 基本操作之增删改查

回顾一些学习和使用的数据库基础知识:首先看下创建一个数据库操作类:#pragma once#import "C:\Program Files\Common Files\System\ADO\msado15.dll" named_guids rename("EOF","adoEOF"), rename("BOF","adoBOF")using namespace ADODB;

2017-07-16 13:08:12 5838

原创 C++多线程分析

以一道多线程面试题引入:编写一个程序,开启3个线程,线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印5遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推!首先简化该多线程问题,即打印函数要求是AAAAABBBBBCCCCC。接着分析多线程抢占的资源是什么?即打印函数。最简单的方案用临界区保护“打印函数”,如下(临界区是指一块内存,一个数据结构,一个文件

2017-07-12 23:21:39 301

原创 STL之配接器

adapter:将一个class的接口转换为另一个class的接口。应用于仿函数,functor adapters,价值在于通过它们直接的绑定,组合,修饰能力,几乎可以无限制地创造出各种可能的表达式。配接操作包括系结(bind),否定(negate),组合(compose)、以及对一般函数或成员函数的修饰。例如:不小于12 可以使用greater_equal的仿函数;

2017-07-11 22:43:43 303

原创 第七章STL之仿函数

仿函数的作用:为算法提供指定的操作。函数指针与仿函数对比,缺点在于无法持有自己的状态,不能满足STL对抽象性的要求,也不能满足软件积木的要求,软件积木理解类似于继承。知识补充:function call操作符(operator())templatestruct plus{    T operator()(const T& x, const T& y)const {ret

2017-07-10 20:52:10 243

原创 利用STL算法高效实现容器的循环移位

一个容器(数组)将[first,middle]内的元素和[middle,last]内的元素互换。举例:数字序列{1,2,3,4,5,6,7},对元素3做上述操作后,数字序列{3,4,5,6,7,1,2}。利用STL rotate算法分析。

2017-06-05 22:57:02 739

原创 Windows 采用Socket方式实现服务器和客户端的数据访问

摘要:采用以CAsyncSocket为基类的服务器Socket接口类,实现服务器和客户端的数据访问。百度百科关于CAsyncSocket的用法:https://baike.baidu.com/item/CAsyncSocket/9597393?fr=aladdin详细介绍:https://wenku.baidu.com/view/1eda781c6bd97f192279e9de.html...

2017-06-04 21:07:12 606

原创 Windows 多线程编程链表的读写

采用 RWLock结构实现多线程链表的插入,删除以及搜索 //线程类,摘抄Windows 多线程编程的第七章内容#pragma once#include <Windows.h>#include "stdio.h"typedef struct _RWLock{ HANDLE hMutex; HANDLE hDataLock; int Rea...

2017-06-04 20:52:51 539

转载 微信小程序城市天气预报切换显示

利用微信小程序的内置地图的Api,实现天气预报的城市切换。

2017-05-05 21:59:17 2999 1

空空如也

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

TA关注的人

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