
C、C++
liangweibeijing
这个作者很懒,什么都没留下…
展开
-
Linux内核中双向链表 list_head及其所属宿主的引用
做内核驱动开发经常会使用linux内核最经典的双向链表 list_head, 以及它的拓展接口(或者宏定义): list_add , list_add_tail, list_del , list_entry ,list_for_each , list_for_each_entry ...... 每次看到这些接口,感觉都很像,今天专门研究了一下内核,对它们做一些总结,希望为后续开发提供方便。首先找到list_head 结构体定义,kernel/inclue/linux/types....转载 2020-09-09 20:02:28 · 255 阅读 · 0 评论 -
linux IO多复用3/3:epoll详解
IO多路复用:epoll总结1、基本知识 epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。2、epoll接口 epoll操作过程需要三个接口,分别如下:#include <sys/epoll.h>int epoll_create(i转载 2020-07-24 17:21:35 · 150 阅读 · 0 评论 -
linux IO多复用2/3:poll详解
IO多路复用:poll1、基本知识 poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。2、poll函数 函数格式如下所示:# include <poll.h>int poll转载 2020-07-24 17:18:41 · 149 阅读 · 0 评论 -
linux IO多复用1/3:select函数详解
linux select函数详解在Linux中,我们可以使用select函数实现I/O端口的复用,传递给select函数的参数会告诉内核: •我们所关心的文件描述符 •对每个描述符,我们所关心的状态。(我们是要想从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常) •我们要等待多长时间。(我们可以等待无限长的时间,等待固定的一段时间,或者根本就不等待)从select函数返回后,内核告诉我们一下信息: •对我们的要...转载 2020-07-24 15:51:48 · 457 阅读 · 0 评论 -
C语言的编译过程 .
C语言的编译过程 摘自http://blog.youkuaiyun.com/piaojun_pj/article/details/5932690 “C语言的编译过程”是我在大一时学习C语言这门课的第一课的内容,当时刚接触到编程语言,同时对计算机的底层运作原理以前不同。所以这第一节课让我感到甚是迷茫。在经过几年的学习后我再次翻开"c语言程序设计"这本书,对当初转载 2012-11-04 01:24:24 · 395 阅读 · 0 评论 -
比较带参宏与函数的异同 .
比较带参宏与函数的异同 摘自http://blog.youkuaiyun.com/piaojun_pj/article/details/5932639 编译器是在程序的预编译阶段对宏进行处理的,主要是用预编译指令来替换源文件中的宏。 1.宏会在编译器在对源代码进行编译的时候进行简单替换,不会进行任何逻辑检测,即简单代码复制转载 2012-11-04 01:26:40 · 892 阅读 · 0 评论 -
各种内排序算法的C++实现
各种内排序算法的C++实现 摘自http://blog.youkuaiyun.com/piaojun_pj/article/details/5911914 和很多计算机系的同学们一样,我在大学二年级时也学了《数据结构》这门课。当时我的老师是一个中科大的博士,现在已经是教授了。他在课上曾经这样评价这门课:《数据结构》几乎是所有计算机课程的基础课,如果把这门课学好了,其转载 2012-11-04 01:36:07 · 351 阅读 · 0 评论 -
使用CreateThread 时报错,函数调用缺少参数列表
=======================================================转自http://www.tc5u.com/mfc/1927534.htm声明:class AFX_EXT_CLASS UmaConnection{public:pSOCKET_OBJ FindSocketObj(pTHREAD_OBJ pThrea转载 2016-06-08 17:59:29 · 2518 阅读 · 0 评论 -
va_start和va_end使用详解
转自http://www.cnblogs.com/hanyonglu/archive/2011/05/07/2039916.html 本文主要介绍va_start和va_end的使用及原理。 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。 介绍这两个宏之前先看一下C中传递函数的参转载 2017-07-14 10:05:21 · 1039 阅读 · 0 评论 -
Linux的进程/线程间通信方式总结
转自http://blog.youkuaiyun.com/kobejayandy/article/details/18863543Linux的进程/线程间通信方式总结2014-01-29 16:10 17386人阅读 评论(0) 收藏 举报 分类:Linux 精华文章(115) Linux系统中的进程间通信方式主要以下几种:转载 2017-07-27 15:46:34 · 1254 阅读 · 0 评论 -
有关Linux下线程的调度
转自http://blog.youkuaiyun.com/hanchaoman/article/details/6697636有关Linux下线程的调度标签: linuxmanager多线程ibm工作编程2011-08-18 11:31 10838人阅读 评论(1) 收藏 举报 分类:linux系统(30) 版权声转载 2017-07-27 17:47:42 · 450 阅读 · 0 评论 -
细谈volatile限定符
细谈volatile限定符 摘自http://blog.youkuaiyun.com/piaojun_pj/article/details/5977218 volatile的本意是“易变的”,由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化。比如: [cpp:showcolumns] view plaincopypri转载 2012-11-03 23:05:24 · 374 阅读 · 0 评论 -
细谈C语言中的main返回值 .
细谈C语言中的main返回值 摘自http://blog.youkuaiyun.com/piaojun_pj/article/details/5986516 C语言几乎是所有人的第一个编程语言,而main函数则又是我们接触到的第一个函数。我们的所有程序都需要main函数,对于下面的代码,相信大家再熟悉不过了。 [cpp] view plaincopyp转载 2012-11-03 22:51:16 · 373 阅读 · 0 评论 -
细谈C语言中的strcpy,strncpy,memcpy,memmove,memset函数 .
细谈C语言中的strcpy,strncpy,memcpy,memmove,memset函数 摘自http://blog.youkuaiyun.com/piaojun_pj/article/details/5945926 一.函数介绍:1、memcpy函数原型:extern void *memcpy(void *dest, con转载 2012-11-04 01:16:27 · 525 阅读 · 0 评论 -
C++数组--详细分析 .
C++数组--详细分析 摘自http://blog.youkuaiyun.com/piaojun_pj/article/details/5919661 1、数组下标: (1)在定义时必须明确。 ①只能用正整数或const常量,静态或全局变量不可以;例如:const int length=5; int array[length];转载 2012-11-04 01:29:39 · 397 阅读 · 0 评论 -
c/c++程序的内存分配 .
转自http://blog.youkuaiyun.com/piaojun_pj/article/details/5910895 首先,需要搞清楚:变量的类型和它的存储类别是两个概念。 数据类型和内存管理没有直接的关系。 一个由C/C++编译的程序占用的内存分为以下几个部分: 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。转载 2012-11-03 21:21:31 · 266 阅读 · 0 评论 -
细谈C语言中的字符串 .
细谈C语言中的字符串 摘自:http://blog.youkuaiyun.com/piaojun_pj/article/details/5960742 对于初学者来说,C语言中对于字符串的操作稍显复杂,而且夹杂着指针的操作,这使得程序员稍微一不小心就会出现错误。C语言作为低级语言和高级语言的中间题,必然比不上java中的String来的舒服。但是,C语言的优秀体现在它的效转载 2012-11-03 22:33:49 · 430 阅读 · 0 评论 -
C语言的const .
C语言的const 摘自http://blog.youkuaiyun.com/piaojun_pj/article/details/5890199 const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰的对象为常量(immutable)。我们来分情况看语法上它该如何被使用。 1、函数体内修饰局部变量。例:void func(){const转载 2012-11-04 01:39:39 · 410 阅读 · 0 评论 -
C语言的变量的作用域和生存期
C语言的变量的作用域和生存期 摘自http://blog.youkuaiyun.com/piaojun_pj/article/details/5890186 一、c程序存储空间布局C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据转载 2012-11-04 01:42:50 · 992 阅读 · 0 评论 -
static 总结
static总结 摘自http://blog.youkuaiyun.com/piaojun_pj/article/details/5890923 一、c程序存储空间布局C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中转载 2012-11-04 01:46:02 · 359 阅读 · 0 评论 -
细谈const char ** 与 char ** 的区别 .
细谈const char ** 与 char ** 的区别 摘自:http://blog.youkuaiyun.com/piaojun_pj/article/details/6132399 [c-sharp] view plaincopyprint?#include "stdafx.h" #include using namesp转载 2012-11-03 22:20:57 · 588 阅读 · 0 评论 -
c++中new和delete的使用方法
摘自:http://www.cnblogs.com/jjzhou1988/archive/2008/11/30/1344314.html new和delete运算符用于动态分配和撤销内存的运算符new用法: 1. 开辟单变量地址空间 1)new int; //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int转载 2012-11-03 20:35:18 · 650 阅读 · 2 评论 -
C++基础遗漏:new和delete
C++基础遗漏:new和delete 摘自http://hi.baidu.com/lewvan/item/4c38d40d23a5b1103b53eeee 我记得当年学习C++基础的时候,老师曾经告诉我们:一般来说new和delete要成对出现,在使用完new申请的内存后要马上释放。我相信持这种说法的人不止我们老师一个人,养成良转载 2012-11-04 01:51:49 · 432 阅读 · 0 评论 -
细谈C++中的new和malloc .
摘自http://blog.youkuaiyun.com/piaojun_pj/article/details/5979819 new和malloc的区别: 1、new 是c++中的操作符,malloc是c 中的一个函数 2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不转载 2012-11-04 00:05:29 · 475 阅读 · 0 评论