- 博客(9)
- 资源 (25)
- 收藏
- 关注
原创 关于内存分配的几个例子
1. #include #include #include void GetMemory(char *p);void Test();int main(){ Test(); return 0;}void GetMemory( char *p ){ p = (char *) malloc( 100 );}void Test( void ){ char *st
2013-06-09 10:41:03 1036
原创 几种string库函数的实现
1. strcpychar *strcpy(char *strDst, char *strSrc){ assert(strDst != NULL && strSrc != NULL); char *tmpDst = strDst; while((*tmpDst++ = *strSrc++) != '\0') ; return strDst;}2. strcat
2013-06-09 09:56:36 1152
原创 死锁
一、死锁产生的原因1.竞争资源引起死锁2.进程推进顺序不当二、死锁产生的必要条件1. 互斥条件:进程对分配给他的资源进行排他性使用。2. 请求和保持条件进程已经占有至少一个资源,又提出了新资源请求,而该资源已经被使用。同时,不释放自身资源。3.不剥夺条件进程已获得的资源在使用结束之前不能被剥夺。4.环路等待环形链存在。如:P1占用P2的资源,P2占有P1
2013-06-07 21:39:30 1102
原创 Windows内存管理
一、基本概念:物理地址、逻辑地址、虚拟地址1.物理地址:物理内存的地址,也就是内存条上的地址。用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。2. 逻辑地址:在有地址变换功能的计算机中,访问指令给出的地址 (操作数)叫逻辑地址,也叫相对地址。要经过寻址方式的计算或变换才得到内存存储器中的物理地址。也是用户程序中使用的地址。3.虚拟地址:当程序在运行时,有一部
2013-06-07 21:21:14 1200
转载 值得推荐的C/C++框架和库
一、什么是进程?什么是线程?1. 进程:进程是某个具有独立功能的程序关于某个数据集合的一次运行活动,它是一个动态的概念。进程主要由:程序段、相关的数据段和PCB(进程控制块)构成。2.线程:线程是程序执行流的最小单元。二、进程和线程的区别?1. 调度:线程是调度和分派的基本单位,而进程作为资源拥有的基本单位。2. 系统开销:进程远高于线程。(进程要创建、销毁进程
2013-06-07 20:54:27 2191
原创 内存分配(mallloc,calloc,realloc,new)
一、C/C++分配一块内存的方法有哪些:1.malloc: 原型 extern void *malloc(unsigned int num_bytes);2.new :C++特有,属于操作符,不是函数3.calloc:原型:void *calloc(unsigned n, unsigned size); 4.relloc:原型:extern void *reall
2013-06-07 19:27:45 1755
原创 getopt、getopt_long、getopt_long_only详解
平时写程序时,有时需要对命令行参数进行处理。在接触本文所涉及的内容前,我们可能想到的方法是顺序提取命令行参数,进行顺序判断处理;然而,这种方法相当不灵活,尤其是在遇到带有可选参数的情况时,很难处理。为此,Linux提供了如下接口进行命令行参数的处理:getoptint getopt(int argc, char * const argv[],const char *optstring);argc和argv与main函数的两个参数相匹配的optstring是一个字符串,形式如“a:b::cd:”,
2013-06-07 18:02:47 2584 1
原创 关键字volatile和restrict
一、什么是volatile?上面是编译器优化volatile是一个类型修饰符,它的主要作用是防止编译器进行优化。那么什么是编译器优化呢,我们看两个个例子:例1: x = 0x04;x = 0x06;x = 0x08;对于硬件来说这是3条指令,依次执行,但是如果让编译器进行编译,则它会忽略前面两条语句,直接得到 x = 0x08;int i = 5, j, k;
2013-06-05 16:14:29 1698
原创 v4l2视频采集基础知识
一、什么是v4l2Video4linux2(简称v4l2),是linux环境下视频驱动的一种,它提供了像访问普通文件那样访问视频设备的方法,能够对其进行读写。视频设备(摄像头)在/dev/video0下二、V4L2视频采集的基本流程1. 打开设备文件int fd = ::open(”/dev/video0″,O_RDWR); 2. 取得设备的capabilit
2013-06-03 21:36:04 2086
OpenStack企业云平台架构与实践.pdf
2018-04-25
TCP-IP详解卷2-实现.pdf
2018-04-13
UNIX环境高级编程 中文第3版
2018-01-15
libev-官方手册
2017-06-12
Linux+C编程一站式学习
2014-12-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人