自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 C、C++字符串处理

一、C++字符串   C++标准库中定义了一个string类,用来处理可变长字符序列。使用string类需要#include <string>,定义在命名空间std中。1、string的定义和初始化string str1; //等价于string str1 = ""string str2 = str1; //复制赋值string str3 = "abcd";

2018-04-24 18:39:00 248

原创 线程同步与互斥:互斥锁、读写锁、POSIX无名信号量

同步与互斥:   互斥是指两个线程不能同时运行,他们会相互排斥,必须等一个线程运行完,另一个才能运行;   同步也是不能同时运行,但是他们必须按照一定的顺序执行。一、线程原型   线程的数据类型为:pthread_t#include <pthread.h>pthread_t pthread_self(void); //获取线程idint pthread_create( pthread_t

2018-03-30 15:15:21 236

原创 进程间通信:管道、消息队列、信号量、共享内存

进程间通信概述   进程是一个独立的资源分配单元,不同的进程之间的资源是独立的,不能在一个进程中直接访问另一个进程的资源。   但是,进程并不是独立的,不同的进程间需要信息的交互和状态的传递等。因此需要进程间通信(IPC: Inter Process Communication)。  linux操作系统支持的主要进程间通信机制有:     一、管道(pipe) 1、特点:   (1) 它是

2018-03-29 19:43:44 279

原创 进程控制:结束进程、等待进程结束、避免僵尸进程

一、结束进程   void exit(int value);   void _exit(int value);  exit()和_exit()函数功能一样,主要的区别在于:exit()是标准库函数,会刷新缓冲区,_exit()是系统调用,不会刷新缓冲区。#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(int a

2018-03-21 19:59:58 397

原创 linux系统编程--fork()/vfork()函数

需要的头文件   #include <sys/types.h>   #include <unistd.h>1、fork()   pid_t fork(void);   成功:子进程返回0,父进程返回子进程的ID   失败:-1  那子进程长什么样呢?   简单来说,一个进程调用fork()之后,系统会给新的进程分配资源,例如存储数据和代码的空间。然后把原来进程的所有值都复制到新的进程中,

2018-03-21 15:17:26 227

原创 C/C++文件读写

一、C读写函数 1、打开文件   FILE *fopen(const char *filename, const char *mode);   成功:返回指向FILE*的文件指针,失败:返回NULL  filename: 指向文件名称的字符串   mode: 文件打开的模式     r: 只读     w: 只写,文件不存在则创建,存在就清空     a: 追加,文件不存在则创建

2018-03-21 09:55:48 276

原创 C++函数对象

原文   标准库里的count_if可以统计容器中满足特定条件的元素的个数。例如要统计vector ivec中正数的个数,可以先写一个返回类型为bool,含有一个int参数的条件函数:  bool pred(int val)   {     return val > 0;   }  之后可以用count_if(ivec,begin(), ivec.end(), pred)计算出正整数的个数。

2018-03-15 14:17:26 172

原创 C++单例模式

其意图是保证一个类仅有一个实例对象,并提供一个全局的访问点,该实例被所有的程序共享。  class CSingleton   {   public:     static CSingleton *Instance();  private:     CSingleton();     static CSingleton *m_pInstance;   };  CSingleton *CSi

2018-03-14 09:43:20 118

原创 C/C++知识细节整理

1、static有什么用途?   1) 在函数体,声明为static的变量在这一函数被调用的过程中维持其值不变   2) 在模块内(在函数体外),声明为static的变量被模块内的所有函数共享,但是它不能被模块外的函数访问。是一个本地化的全局变量   3)在模块内,声明为static的函数只可被该模块内的其他函数调用。那就是,限制该函数只能在本模块内使用2、const和#define相比,有何

2018-03-09 14:03:53 189

原创 C++四种类型转换方式

C风格的强制类型转换(Type Case)很简单,不管什么类型的传统转换都是:Type b = (Type)a,但是C风格的类型转换有不少的缺点,有的时候用C风格的转换是不合适的,因为它可以在任意类型之间进行转换,比如你可以把一个指向const类型的指针转换成指向非const类型的指针,把一个指向基类对象的指针指向派生类对象的指针,这两者之间的转换差距是巨大的,但是传统的C风格的转换没有区分这些。还

2018-03-08 14:00:59 283

原创 extern和extern "C"

extern的问题在于你不知道这个关键字出现的时候到底是声明还是定义。 谨记:声明可以多次,但是定义只能有一次。函数的声明extern关键字是可有可无的,因为函数本身不加修饰的话就是extern的。下面分变量和函数来说明: (1) 变量  extern int a; //声明一个全局变量  int a; //定义一个全局变量 extern int a = 0;//定义全局变量并给初值

2018-03-08 13:55:00 2934

原创 C++虚函数表解析

前言 静态类型:对象声明的类型为静态类型 动态类型:对象所指的类型为动态类型静态绑定和动态绑定:绑定的是对象的静态类型还是动态类型,virtual函数都是动态绑定,其他的都是静态绑定,包括virtual函数中的默认形参。虚函数 C++中的虚函数主要是实现了多态机制。关于多态,就是用父类型的指针指向子类型的实例,然后通过父类型的指针调用子类型的函数。这种技术可以让父类的指针有“多种形态”,这是一

2018-03-08 10:02:41 155

空空如也

空空如也

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

TA关注的人

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