自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Robot Man的技术博客

求实创新,励志图强

  • 博客(19)
  • 资源 (2)
  • 收藏
  • 关注

原创 文件/目录管理(2)---dup()/dup2()/lseek()/fcntl()

dup()和dup2()都可以复制文件描述符,区别是: dup()返回的是系统帮忙查找的未使用的最小值 dup2()返回的是第二个参数,如果该值已经被使用,会先关闭然后再使用。 dup() dup2() 复制文件描述符,但不复制对应的文件表。 使用文件描述符时,内存中对应一个文件表,在文件表中,会记录关于内存中文件表的信息和硬盘上的文件的信息,其中,i节点是文件在硬盘

2016-06-23 10:07:49 539

转载 libevent总结(下)

本文转载自:(http://blog.csdn.net/qq_15457239/article/details/51320917)八、统一定时器事件和I/O事件详解 和信号事件相比,把定时器事件和I/O事件统一起来就变得十分容易了,为什么?因为I/O复用机制如select(),poll(),epoll_wait()都允许设置一个最大等待时间^_^。So,让我们来看看libevent是怎样做的吧。

2016-06-23 10:04:28 629

转载 libevent总结(中)

本文转载自:(http://blog.csdn.net/qq_15457239/article/details/51248988)五、事件处理框架 libevent的事件处理框架是一个反应堆模型,而反应堆模型的核心就是IO复用。拿epoll来说,反应堆模型有两个核心数据结构,一个是epoll维护的内核事件表,一个是保存激活事件的事件队列。当然,值的注意的是,如果是单线程或者单进程,反应

2016-06-23 09:51:57 1018

转载 libevent总结(上)

本文转载自(http://blog.csdn.net/qq_15457239/article/details/51063314),作者:会飞的猪,建议看原版,作者的版风非常好!最近想手动重写一下某精简版的文档型数据库,所以想借鉴一下libevent的事件机制。之前也看过libevent的部分代码,但长时间不用已经忘的干净了。今天借此机会温习一下libevent,在此写个总结。一、简介libevent

2016-06-23 09:11:17 496

原创 C语言的常用库函数

calloc函数也可以从堆中分配内存,这个函数会对分配好的内存进行清0 realloc函数可以调整堆中分配的内存大小,realloc的调整不一定在原地完成,调整完成后只需要释放新的内存空间 calloc如果调整失败则返回NULL函数指针用来记录代表函数的地址数据,函数指针可以用来直接调用一个函数 把函数声明中的函数名改成指针变量声明就得到函数指针的声明语句,函数名称代表函数的首地址 函数指针

2016-06-22 10:52:42 609

原创 C语言结构体、枚举、联合

结构体可以用来把多个不同类型的变量合并成一个整体 结构体是一种数据类型,可以用来声明变量 结构体的声明语法如下: struct 结构体名称 { int id; char name[20]; float salary; }; 大括号内部声明的变量并不会立刻在内存中分配空间 使用结构体声明结构体变量的语法如下: struct person p; 其中struct per

2016-06-22 10:51:54 509

原创 C语言的预处理指令

预处理指令是c语言支持的一种特殊指令 它们以#做开头,不以;做结尾 预处理指令在编译的第一个阶段被处理 所有预处理指令都是把程序变成另外的样子 gcc可以使用-E选项单独处理所有预处理指令 “#define”是一个预处理指令,这个预处理指令用来定义宏,宏定义可以给数字起名称 定义宏时不要使用=和; 宏名称中不应该有空格 宏和变量在计算机里的处理方式完全不同 可以在gcc命令行中使

2016-06-22 10:50:56 2983

原创 C语言的字符串

数组名称和指针变量的区别 1、数组名称不可以被赋值,指针变量可以被赋值 2、进行sizeof计算时结果不同 3、进行取地址操作结果不同(数组名称取地址得到的数字和原数组名称代表的数字一样,但是新数字被当成二维数组看待) 使用循环操作数组时,可以使用指针变量作为循环变量const关键字也可以用来声明变量,const变量是不可以被修改的(可以通过指针修改) const用来声明指针变量的时候不允

2016-06-22 10:47:07 473

原创 C语言的变量域和指针

可以使用某个变量名的所有语句的综合叫这个变量的作用域 每个变量都有它自己的作用域,在函数中的变量,或者函数形参中的变量,都是局部变量,他们的作用域就是当前函数,而全局变量的声明在所有函数之外,全局变量的作用域是程序中的所有语句,在当前程序的各个地方都能访问到,全局变量不初始化的话,系统会自动初始化为0,而局部变量则不确定 块变量声明在某个语句块内部,块变量的作用域是语句块内部的所有语句 在局部

2016-06-20 15:18:09 1452

原创 C语言的函数与文件操作

c语言中使用函数对语句进行分组 所有的c语言程序都是由一个或多个的的函数构成的 所有c语言程序中必须有一个叫做main的函数,这个函数叫做主函数 函数之间通过互相调用建立联系,在函数调用过程中主动发起的一方叫调用函数,被动接受的一方叫被调用函数 返回值是一个特殊的变量,函数中使用return语句对返回值变量赋值 调用函数中可以把函数调用语句当数字使用,这个数字就来自于函数的返回值变量,返回

2016-06-20 14:28:58 644

原创 C语言的语句和数组

分支语句可以根据情况从多组语句中选择一组执行 if(逻辑表达式1){ //有且只有一个 语句组1 } else if(逻辑表达式2){ //可以没有,也可以有多个 语句组2 } else{ //最多一个,可能没有 语句组3 }switch … case语句也是一种分支语句循环语句可以用来反复执行类似的操作

2016-06-20 14:25:23 736

原创 C语言的运算符

c语言中可以使用加减乘除(+,-,*,/)以及取余(%)这些操作符 赋值操作符(=)用于对变量赋值,左边必须是变量,右边是可以当成数字使用的内容,赋值操作符的优先级很低,但是比,优先级高 多个赋值操作符从右向左计算 复合赋值操作符(+=,-=,*=,/=),其优先级和赋值操作符的优先级一样 自增,自减运算符(++,–),只能对变量进行操作,两种操作(前操作、后操作)的区别在于操作的时机 前

2016-06-20 10:18:41 4246

原创 C语言的数据类型

MinGW是windows操作系统里的gcc当输入非法时,使用scanf(“%*[^\n]”);scanf(“%*c”);从而不影响对后面读取数据的影响.关键字后面接空格 函数名后面不要空格 , ;不空格且向前靠拢 && || != == >= <= = + - * / 这些操作符前后都要空格 ++ – [] . -> 前后都不空格 特别注意运行时,scanf的输入格式,空空格,打不打

2016-06-16 16:22:25 1996

原创 文件/目录管理(1)---open()/close()/read()/write()

文件和目录 在Linux中,几乎一切都被看成了文件。 因此文件操作函数:(系统调用) open()/close()/read()/write()/ioctl() 可以操作几乎所有输入输出设备。open() 打开一个文件 int open(char* filename,int flag,…) filename 表示文件名(带路径) flag

2016-06-16 10:46:38 686

原创 内存管理-sbrk()/brk()、mmap()/munmap()

sbrk() brk()底层都维护了一个位置, sbrk(increment) 当 increment 为正时,位置向后移动increment字节,同时返回移动之前的位置,相当于分配内存。 当 increment 为负时,位置向前移动increment字节,相当于释放内存,其返回值没有实际意义。 当 increment 为零时,不移动位置,只返回当前位置。 s

2016-06-13 17:11:11 1314

原创 环境表 内存管理-malloc()/free()

所有的环境变量在程序中可以通过环境表获取。 环境表是一个全局变量,类型是字符指针数组,以NULL结束,获取方式: extern char** environ; environ就是环境表的首地址,是全局变量env.c#include <stdio.h>#include <string.h>int main(){ extern char** environ;//全局变量不

2016-06-12 20:31:41 850

原创 静态库和共享库(动态库) 动态调用共享库 C的错误处理

程序员找工作的流程: 写简历(差异化)->被通知笔试(背笔试题)->面试(两轮-人力、技术)->等待 由于项目比较复杂,代码数量非常庞大,可以把代码打包成库文件,提供库文件和头文件即可。 库文件分为两种: 静态库 和共享库(动态库),静态库和共享库都是代码的归档文件。使用静态库时,把静态库的代码复制到目标文件中,导致目标文件比较大;使用共享库时,把函数的地址放到目标文件中。

2016-06-12 19:30:25 2049

原创 gcc编译过程 常用指令:#warning/#error/#pragma 环境变量 头文件

标准C - 基础,不考虑平台 Unix/Linux下C的开发 - Unix/Linux系统 操作系统: 内存管理、文件/目录管理、进程管理、线程管理、网络支持、信号、IPC进程间通信 学习主要是理论+系统函数,以系统函数应用为主 理论上的东西 尽可能理解,系统函数要求熟练使用。 学习方法: 1 要多花时间和精力,有付出才有收获,付出越多,收获越多。 2 程序员首先做项目,动手是第一

2016-06-08 15:08:02 5255

原创 Linux系统基本操作相关命令

终端窗口中只能使用键盘,不能使用鼠标 whoami:可以知道当前使用的账号 clear:清屏 操作系统使用文件系统来管理文件,文件系统中保存了计算机里所有需要长期保存的信息 文件系统由文件夹(目录)和文件构成 文件夹是用来对文件进行分组管理的,文件夹可以逐层嵌套,文件是用来保存信息的 每个文件一定属于一个文件夹 如果目录A包含目录B,则目录A叫做父目录(上一级目录),目录B叫做子目录(

2016-06-07 15:53:18 1335

Ubuntu编译android4.4源码

Ubuntu 12.04搭建环境成功编译过android4.4的源码。

2015-08-21

空空如也

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

TA关注的人

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