自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ox2A19的专栏

个人技术博客,源于分享

  • 博客(78)
  • 资源 (4)
  • 收藏
  • 关注

原创 10,信号

中断:停止当前执行的程序而去执行新的程序或处理意外的过程;中断分为两大类:硬件中断,软件中断信号的处理:    本质上就是一种软件中断,即可以作为两个进程间通信的一种机制;    更重要的是,信号总是可以终止一个程序的执行,他更多的被用与处理意外情况;信号的特性:1.信号是异步的,进程不知到什么时候知道信号回来;2.进程即可以发送信号,也可以处理信号;3.每

2016-10-18 09:43:20 369

原创 09,线程

目前主流的操作系统都支持多进程,而在每一个进程的内部又可以支持多线程;也就是说线程隶属于进程,是进程内部的流程流;进程是重量级的,新建进程对系统资源的消耗比较大;而线程是轻量级的,线程会共享所有进程中的资源,但每个线程都有一块独立的栈区;#include int pthread_create(pthread_t *thread, const pthread_

2016-10-18 09:41:33 362

原创 08,网络

七层网络模型:为了数据完整,安全地在网络中传递,ISO将数据的传递从逻辑上划分以下七层;1.应用层:主要用于将数据交给应用程序2.表示层:主要用于按照统一的格式进行数据封装等;3.会话层:主要用于控制对话的建立,关闭等操作;4.传输层:主要用于数据的检查和重新排序;5.网络层:主要用于选择具体网络协议再次封装和发送等;6.数据链路层:主要用于将数据转换成高低电平信号

2016-10-18 09:40:30 535

原创 07,文件锁

文件锁/建议锁的由来当两个进程在同一时刻向同一个文件中写入数据时,可能造成数据的交错和不一致问题;当一个进程在向文件写入数据的同时,另外一个进程读取文件中数据时也可能造成数据的不一致问题;当两个进程同时读取同一个文件数据时,可以同时进行;为了实现上述表格的效果,linux系统中引入文件锁的机制,文件锁本质上就是读写锁,一把读锁和一把写锁,其中读锁是一

2016-10-18 09:39:09 390

原创 06,进程

基本命令:ps:查看当前终端所启动的进程信息;ps -aux //ps -aux | more:查看所有进程详细信息,并分屏显示ps -ef // ps -ef | more:以全格式的方式显示所有进程信息kill -9 进程号:杀死指定的进程目前主流的操作系统都支持多进程,如果进程A启动了进程B,那么进程A叫做进程B的父进程,进程B叫做进程A的子进程;PI

2016-10-18 09:38:10 611

原创 0,5文件

#include void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);第一个参数:建立映射的起始地址第二个参赛:建立映射的长度第三个参赛:映射的访问权限    PROT_EXEC    可执行    PROT_READ    可读    PROT_WRITE

2016-10-18 09:36:48 363

原创 04,内存管理

内存管理技术:程序:存放在磁盘/硬盘上的可执行文件进程:运行在内存中的程序,叫做进程;同一个程序可以对应多个进程进程映像:进程在内存中的布局进程中的内存区域划分int num;int main(){    int num;    return 0;}代码区:(Text)    主要用于存放具体的功能代码,函数指针指向该区域;如可执

2016-10-18 09:35:52 945

原创 03,库文件

***环境变量一般指在操作系统中用来指定操作系统运行环境的一些参数,也就是用于存放和系统/软件环境相关信息的特殊变量path/PATH:本质是一种环境变量,用于存放应用程序的路径信息;当应用程序的路径存放到该变量之后,就可以直接通过该程序的名称来启动;而不在需要路径信息linux系统中的配置方法:打开终端,执行一下命令:export PATH= $P

2016-10-18 09:30:27 543

原创 02,预处理指令

1.常用的预处理指令    #include ...  包含头文件    #define ...   进行宏定义    #undef ...    取消宏定义    #ifndef ...   如果没有定义    #ifdef ...    如果定义    #elif  ...    否则如果    #else  ...    否则    #endif ...   

2016-10-18 08:55:46 276

原创 01,多文件编程

1.Unix和linux系统的简介1.1 Unix系统的简介    在1969年左右,编写操作系统使用的是汇编语言,无论是编写还是维护都非常不方便,贝尔实验室中的肯-汤普逊在很多语言的基础上研发了B语言,后来贝尔实验室中的丹尼斯-里奇在B语言的基础上做了修改和扩展,改名为New B语言,后来改名为C语言;   C语言诞生于1972年,至今在编程语言排行榜上依然占据重要地位;   U

2016-10-18 08:51:13 536

原创 15,文件操作

所有文件都采用二进制方式记录数字 如果文件里的所有二进制内容都对应字符则这种文件叫文本文件除了文本文件以外的所有文件叫做二进制文件文本文件可以当作二进制文件使用文件操作的基本步骤1.打开文件(fopen)2.操作文件(fread/fwrite)3.关闭文件(fclose)fopen函数需要两个参数1.代表要打开的文件路径2.代表打开文件的方式(决定程序中

2016-09-04 22:00:09 299

原创 16,动态内存分配

动态内存分配可以在程序运行的时候临时决定需要分配多少个存储区为了管理动态分配内存需要使用一组标准函数  malloc:可以动态分配一组连续的字节;需要一个整型参数表示希望分配的字节个数他的返回值表示分配好的第一个字节的地址,如果失败,返回NULLmalloc使用一个无类型指针存储区记录返回值,需要首先强制类型转换成有类型指针,然后才可以使用动态内存使用完

2016-09-04 14:47:18 253

原创 15,高级指针

记录普通类型存储区地址的指针叫做一级指针记录一级指针存储区的地址叫做二级指针声明二级指针的时候需要使用两个**;指向一个指针的指针二级指针前使用**可以表示捆绑普通类型存储区二级指针前使用*可以表示捆绑的一级指针存储区二级指针可以代表指针数组,但是不可以代表二维数组无类型指针有可能实际上是二级指针c语言中函数也有地址函数名称可以代

2016-09-04 14:32:23 397

原创 14,结构体

结构体:可以在一个存储区中记录多个相关的数字;需要程序员创建出来以后才能使用可以包含多个子存储区,每个子存储区可以用来记录一个数字不同子存储区的类型可以不同,甚至子存储区也可以是结构体存储区结构体申明语句中需要使用struct关键字结构体内的变量声明不会分配内存,所以不可初始化(不分配内存的变量都可以放在头文件中)变量声明是会分配内存,用来记录数字t

2016-09-04 14:26:09 250

原创 13,多文件编程

把程序写在多文件里叫做文件编程多文件编程时一个文件可以包含多个函数,一个函数必须完整的属于一个文件所文件编程步骤:1.把所有函数分散在多个不同的源文件里;住函数通常单独占一个文件2.为每个源文件编写配对的头文件;住函数所在的源文件不许要配对头文件,所有部分配内存的内容都可以写在头文件里。头文件里至少应该包含配对源文件里所有函数的声明3.在每个源文

2016-09-04 14:17:08 294

原创 12,预处理指令

#define 预处理指令用来定义宏宏定义用来给数字起名字定义宏的时候,名称写在前面,所代表的数字写在后面宏名称通常用大写英文字母表示宏名称里不可以包含空格用宏给数字起名字的时候不要使用赋值操作符编译器在编译的时候将程序中所有宏名称替换成他所带表的数字可以在编译命令中使用-D选项指定宏名称所代表的数字比如:gcc -DPI=3.14f c

2016-09-04 14:11:30 301

原创 11,字符串

c语言中所有文字必须记录在一组连续的字符类型存储区中,所有文字信息以'\0'字符结束符合以上两种特征的内容就可以用在c语言中记录文字信息了,叫做字符串字符串里'\0'字符前面的部分是有效字符所有字符串都可以用一个字符类型指针表示字符串字面值是一种字符串,双引号中间包含的一组字符表示,比如:"abc","!@#$%" 编译器在编译的时候会自动在字符串字面值的末

2016-09-01 23:06:25 487

原创 10,指针

指针变量可以用来存储记录地址数据,他可以根据记录的地址数据来找到来源的存储区没有记录有效地址的指针变量不能使用有效指针前使用*操作符可以找到地址对应的存储区声明指针变量时的类型名称代表他捆绑存储区的类型,不同类型的指针适合与不同的存储区捆绑没有捆绑过的指针分成两类:1:空指针;里面记录了空地址用NULL表示,地址的数据就是02:野指针;其他没有捆绑过的指针

2016-09-01 22:07:50 231

原创 09,变量作用域

能使用某个变量的所有语句叫做这个变量的作用域声明在函数内部的变量叫做局部变量,局部变量域就是函数内部的所有语句声明在所有函数外边的变量叫做全局变量,全局变量的作用域包含在程序中的所有语句没有初始化的全局变量会自动初始化为0;如果是局部变量则会是随机数全局变量和局部变量可以重名,语句中优先采用局部变量如果全局变量和局部变量都可以解决问题就应该优先选择局部变量

2016-09-01 22:05:04 238

原创 08,函数和递归

函数:一系列语句的组合,这些语句组合起来,并被指定一个名字;包含:函数名,返回值,形参,函数体多函数执行的模式下,整个函数的执行时间被分成多个段,每段分给一个函数任何两个时间段不能相互重叠并且所有时间段必须相连如歌函数A把自己的时间分配给了函数B,则函数B结束之后必须把后面的时间还给函数A如果函数A把自己的时间分配给函数B使用,则他们之间存在函数调用关系这个

2016-09-01 22:03:56 281

原创 07,数组

数组可以代表内存中一组连续的同类型存储区;即存储相同类型的数字需要先声明,再使用;还需要提供存储区个数,即长度;一旦确定就不可以改变数组不可以作为整体使用,通常每次使用其中的某个存储区数组里每个存储区都有一个编号,这个编号叫做数组的下标第一个为0,向后以此递增可以使用数组名称和下表表示数组里的某个存储区*** c语言不检查下标的范围,当越界访问时,结

2016-08-31 22:00:58 241

原创 06,缓冲区

缓冲区又称为缓存,他是内存空间的一部分。也就是说,在内存空间中预留一定的存储空间,这些存储空间用来缓冲输入或输出的数字,就不分预留的空间就叫做缓冲区scanf():从键盘得到数字的时候会首先把数字放到输入缓冲区里,然后从输入缓冲区把数字转移到变量中;输入缓冲区里前面的数字没有处理的时候不能处理后面的数字如果用户输入的数据格式和程序希望的格式不一致则后面所有数据都无法处理

2016-08-31 22:00:07 243

原创 05,循环语句

循环语句的真正执行顺序:for(1;2;3){  4}执行顺序:[1,2][4,3,2][4,3,2][4,3,2]......[4,3,2]第一组和其他组的执行顺序不同正常情况下应该在两组之间结束如果某一组最后编号为2的逻辑表达式结果为假则结束,否则启动下一组如果循环正常结束则循环变量一定落在指定的数字范围之外srand(time(0)

2016-08-31 21:58:45 231

原创 04,运算符基础

操作符用来表示对数字的处理规则操作符可以分为三种:单目操作符双目操作符三目操作符自增,自减操作当  数字  使用时,前操作是修改之后的数字,后操作是修改之前的数字不要在一条语句里对同变量多次进行自增自减计算;比如:num = num1++ + ++num1************************************

2016-08-31 21:57:40 314

原创 03,二进制基础

一个字节分为八位,每位可以记录一个0或1用一组0或1表示数字的方法叫做二进制表示方法****************************************************1:十进制的非负数转换成二进制的方法利用短除法就行运算,算出的结果从下到上,从左到右写出即可得出结果比如:12的二进制12    06    03 

2016-08-31 21:55:08 509

原创 02,C语言基础

c语言程序大部分内容应该记录在.c的扩展名的文件里,这种文件叫做c语言的源文件。c语言程序小部分内容记录在.h的扩展名里,这种文件叫做头文件。{}:代表函数,即一组语句。每个函数必须有自己的名字,不同的函数名字不可重复。c语言中保留了几十个英文单词作为关键字;每个关键字都有特定的使用场景,不能随便使用;所有关键字都是小写字母构成。c语言的编码规范:1.一行最多包含一

2016-08-19 19:35:22 322

原创 01,Linux 常见指令集合

最近在学习嵌入式开发,因此整理了下常见的终端操作指令!在此和大家分享下;计算机的组成部分:硬件》cpu:完成对所有数字处理的操作;内存:存放计算机所要处理的所有数据,关机后,内存中的数据将会消失!硬盘:可以用来长期保存数据软件》系统软件:提供计算机的基本功能应用软件:可以帮用户解决各种问题Linuex操作系统的典型使用方式是通

2016-07-03 19:45:03 414

原创 object-c 常见输出格式

%%:             为'%'字符;%d,%D,%i:   为32位整型数(int);%u,%U:        为32位无符号整型数(unsigned int);%hi:   为有符号的16位整型数(short);%hu:  为无符号的16位整型数(unsigned shord);%qi:   为有符号的64位整型数(long long);%qu:  为无符号的

2015-06-30 11:27:59 1173

原创 动态获取键盘的高度

- (void)registerForKeyboardNotifications{        [[NSNotificationCenter defaultCenter] addObserver:self                                             selector:@selector(keyboardWasShown:)       

2015-06-11 15:41:19 382

原创 一段简单的图片裁剪代码

UIImage *srcimg = [UIImage imageNamed:@"test.png"];//test.png宽172 高192        UIImageView *imgview = [[UIImageView alloc] init];                imgview.frame = CGRectMake(10, 150, 300, 220);

2015-06-11 14:39:21 571

原创 socket编程整理

UDP和TCP的对比:简单点说。UDP处理的细节比TCP少。UDP不能保证消息被传送到(它也报告消息没有传送到)目的地。UDP也不保证数据包的传送顺序。UDP把数据发出去后只能希望它能够抵达目的地。TCP优缺点:优点:        1.TCP提供以认可的方式显式地创建和终止连接。        2.TCP保证可靠的、顺序的(数据包以发送的顺序接收)以及不会重复的数据传输。

2015-06-05 15:32:25 439

原创 iPad软件界面设计基本规范

iPad平台特点1 大屏幕,分辨率 1024x7682 再次强调没有固定的方向,必须四个方向都支持。3 可以外接键盘4 可以放置设备,与台式机同步iPhone与iPad的共同特点- 内存有限- 同时运行单个程序- 在设置功能里放置程序选项- 设备方向可以改变- 最小化的帮助,让用户直接就能看懂- 程序响应手势而不是鼠标- 运行源生程序、W

2015-06-05 11:06:18 2825

原创 调用iPhone自带的播放器

调用iPhone自带播放器的一个小demo,就如同调用Email和电话相同1.导入框架#import #import 2.定义变量@interface iPodTestViewController : UIViewController {    MPMusicPlayerController  *player;    MPMediaPickerControl

2015-06-04 17:31:23 786

原创 蓝牙防丢器距离的计算

在做防丢器的项目中,有一个比较实际的功能就是通过设置距离的大小来设置报警。但是框架中并没有给出获取距离的接口,只有一个相关的RSSI信号强度值。在网上找了好长的一段时间,可以通过一个算法获得到他的距离:代码如下!-(void)peripheralDidUpdateRSSI:(CBPeripheral *)peripheral error:(NSError *)error{   

2015-05-27 10:02:21 2545 1

原创 手动图形的绘制

最近在学习一些动画的效果,其中有一个功能 可以手动绘制图像,比如 画板的实现。在了解其实现原理之后实现起来还是比较简单的代码如下:@interface DrawView : UIView@end////  DrawView.m//  QuarteCore////  Created by HAOZO.MAC on 15/4/14.//  Copyr

2015-04-15 11:15:56 562

原创 一个简单关于动画的暂停和开始操作的处理

// 暂停动画    /*     1.取出当前的动画的时间点,就是要暂停的时间点     2.将动画的运行速度设置为0,动画默认的运行速度是1.0     设置动画的时间偏移量,制定时间偏移量的目的就是让动画定格在该时间点*/        CFTimeInterval pauseTime=[self.view.layer convertTime:CACurrentMed

2015-03-25 15:59:30 639

原创 一个简单的手机摇一摇功能

一个类似微信的摇一摇功能:// 设置允许摇一摇功能    [UIApplication sharedApplication].applicationSupportsShakeToEdit = YES;    // 并让自己成为第一响应者    [self becomeFirstResponder];// 摇一摇开始摇动- (void)motionBegan:

2015-03-16 18:30:48 955

原创 IOS从背景图中取色

#pragma mark - 响应色盘取色- (UIColor *)colorgetPixelColorAtLocation:(CGPoint)point{        UIColor *color = nil;    UIImage *fixedImage = [self colorfixImageWithCGSize:self.frame.size];    CG

2015-03-10 11:05:13 960

原创 runtime中的关联使用方式

在runtime 中有一个对象的关联的用法:OC中的关联就是在已有类的基础上添加对象参数。来扩展原有的类,需要引入#import 头文件。关联是基于一个key来区分不同的关联。static char key;常用的3个方法1>objc_removeAssociatedObjects(self); 移除关联2>1 创建关联(源对象,关键字,关联的对

2015-03-04 17:53:23 381

转载 IOS中类和对象以及nil/Nil/NULL的区别

一、类与对象的概念类是对同一类事物高度的抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法)。对象是类的一个实例,是一个具体的事物。类与对象是抽象与具体的关系。类其实就是一种数据类型,它的变量就是对象。类与类之间的关系——继承关系A是B如果这句话说的通,在设计程序的时候就可以看成是继承关系。例如:学生与小学生 小

2015-03-04 17:48:54 418

ios应用逆向工程分析与实战

讲述越狱开发的入门级别操作,读此文档需要有一定的开发经验,至少有一个以上独立app的开发经验

2014-12-04

简易闪光灯的demo

简易闪光灯的demo包括调节闪光灯的亮度

2014-11-05

CoreBluetooth

CoreBluetooth框架的基本使用方法和属性及常见使用协议

2014-08-28

蓝牙4.0 and 蓝牙2.0

CoreBluetooth蓝牙框架的一个demo,介绍一些常见的用法

2014-08-28

空空如也

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

TA关注的人

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