自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(111)
  • 资源 (2)
  • 收藏
  • 关注

原创 php中FILES的注意点

文件上传的html表单:form enctype="multipart/form-data" action="" method="POST">    input type="hidden" name="MAX_FILE_SIZE" value="1000">    input name="myFile" type="file">

2017-07-17 10:25:07 473

原创 php入门

之前自己没学过php,虽然php很简单,但是自己通过看文档说明的,感觉有点混乱,没有逻辑性,今晚在网上看到一个很好的视频教程:http://edu.csdn.net/course/detail/3471/59948?auto_start=1真心很不错,以实例来讲解

2017-07-15 00:42:17 388

原创 PHP中的session与cookie理解

PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。理解:session用于单一用户与服务器的交互,每个用户的session都是不一样的。session作为全局变量,在浏览器开启期间所有页面内有效。Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于

2017-07-10 11:24:59 534

原创 html学习的一些笔记

1.什么是html5,他和html有什么区别?html5最先由WHATWG(Web 超文本应用技术工作组)命名的一种超文本标记语言,随后和W3C的xhtml2.0(标准)相结合,产生现在最新一代的超文本标记语言。可以简单点理解成:HTML 5 ≈ HTML4.0+CSS3+JS+API。mtl5和html的区别在哪里?我们现在web前端开发的静态网页,一般都是htm

2017-07-03 23:17:27 302

转载 利用openssl进行RSA加密解密实例

转载自:http://www.cnblogs.com/aLittleBitCool/archive/2011/09/22/2185418.htmlopenssl是一个功能强大的工具包,它集成了众多密码算法及实用工具。我们即可以利用它提供的命令台工具生成密钥、证书来加密解密文件,也可以在利用其提供的API接口在代码中对传输信息进行加密。RSA是一个非对称加密算法。简单说来,非对称

2017-06-28 09:26:17 677

原创 从问题来看加密解密等技术

看了一些加密解密的基本内容后想通过一些问题来看自己理解的怎么样:以RSA密码体制为例子:公钥私钥都可以作为加密解密,但是公钥加密后,只能通过私钥解密客户端和服务器端之间的加密通讯1.如何确定对方是服务器端?首先服务器将明文与用私钥加密后的密文传递给客户端,客户端用公钥解密密文后和明文对比,如果一致那么就能确定对方是服务器端,因为他有私钥。“客户”->“服务器”:

2017-06-27 15:20:00 473

转载 数据加密解密、公钥、私钥、数字证书

文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出! 1、基础知识      这部分内容主要解释一些概念和术语,最好是先理

2017-06-27 11:25:26 798

转载 linux网络编程之Socket编程原理

转载自http://blog.csdn.net/hguisu/article/details/7444092socket编程原理1、问题的引入1) 普通的I/O操作过程:UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作

2017-06-11 14:33:49 359

转载 网络基础---TCP连接

转载自http://blog.csdn.net/u010670619/article/details/50998260TCP协议原理:TCP每发送一个报文段,就启动一个定时器,如果在定时器超时之后还没有收到ACK确认,就重传该报文。 如图所示,数据包由A的缓冲区发往B,B在收到数据包以后,回发一个ACK确认包给A,之后A将该数据包从缓冲区释放。因此,该数据包会一直缓存在A的缓冲区,直到一个

2017-06-11 14:27:57 311

转载 linux下网络编程的一些知识点

是一篇不错的文章,对socket编程中的原理和要点讲解的都很清楚。------------------------------Linux的SOCKET编程详解1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程

2017-06-11 10:10:01 813

原创 linux网络编程之TCP编程

基于TCP(面向连接)的socket编程,分为客户端和服务器端。客户端的流程如下:(1)创建套接字(socket)(2)向服务器发出连接请求(connect)(3)和服务器端进行通信(send/recv)(4)关闭套接字服务器端的流程如下:(1)创建套接字(socket)(2)将套接字绑定到一个本地地址和端口上(bind)(3)将套接字设为监听模式,准备接收客户

2017-06-10 20:40:27 329

原创 linux网络编程之UDP编程

在网络传输协议中,TCP协议提供的是一种可靠的,复杂的,面向连接的数据流(SOCK_STREAM)传输服务,它通过三段式握手过程建立连接。TCP有一种“重传确认”机制,即接收端收到数据后要发出一个肯定确认的信号,发送端如果收到接收端肯定确认的信号,就会继续发送其他的数据,如果没有,它就会重新发送。相对而言,UDP协议则是一种无连接的,不可靠的数据报(SOCK_DGRAM)传输服务。使用UD

2017-06-10 11:54:17 359

原创 shell脚本编程

今天看看shell编程,记录下期中与想象中不一样的地方0.注释用#1.shell的变量赋值   your_name="zhm",  在your_name和等号中间不能有空格,这和别的语言很不一样,那么在使用变量时和别的语言也不一样,要使用$your_name,,一般要用${your_name},一定是大括号2.那么如何把一个变量变成只读的呢,在C语言中用const  那么s

2017-06-04 22:08:28 305

原创 CString类的学习

CString类的学习主要参考了这篇文章---http://www.jizhuomi.com/software/228.html首先看这个类要先看下编码字符集以及编码方式的一些基本概念,见http://blog.csdn.net/happyguys12345/article/details/72857712在cstring中看到很多的_T啥的,没看懂,于是查了下,还是和编码方式相关,见下面

2017-06-04 15:01:39 336

原创 编码字符集Unicode与编码方式UTF-8是个什么样的关系

对于编码字符集和编码方式隔热你理解如下图,下面的文字转载自http://blog.csdn.net/u011605971/article/details/46330087字符集是指字符的集合,例如所有的英文字母是字符集,所有的汉字也是字符集,全世界所有语言的符号都放在一起,也可以称为一个字符集,字符集中的字符没有顺序之分,在给字符集合中的每个字符都分配一个整数编号之后,这个字符

2017-06-04 11:02:31 648

原创 python的一些学习总结

前段时间在做esim项目的时候接触到了python写的scons编译脚本,然后大概看了下这门语言,应该不叫语言,叫脚本,他和c语言很像,下面把自己的一些总结梳理下:1.python语言基本的数据类型有:数字Number、字符串String、列表List、元组Tuple、字典Dictionary他们各有特点,列表用 [] , 元组用 () ,字典用{keys:values},其中元组是只读,

2017-06-03 17:28:07 464

原创 平常练习的shell linux命令

1.awk命令

2017-06-02 09:22:37 312

转载 C++ STL入门总结及一些忠告

C++:STL标准入门汇总学无止境!!!第一部分:(参考百度百科) 一、STL简介STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术

2017-06-01 10:09:17 4030 2

原创 面试的一些问题(2017.6.1)

1.voilate是什么意思,有什么作用?violate 是C语言中的关键字,用于告诉CPU这个变量或寄存器是不稳定的,随时有可能变化,一般这个在嵌入式中用的比较多,因为在嵌入式中很多的Reg很有可能被随时改变,比如一些设备的IO寄存器,你不知道什么时候会变化,所以就需要加上这个关键字,来告诉CPU说,我这个寄存器随时都可能变化喔,你不能从cache里面拿,必须到内存中去拿。因为cache里面

2017-06-01 09:24:53 462

转载 Makefile大综合基础知识

该篇文章为转载,是对原作者系列文章的总汇加上标注。支持原创,请移步陈浩大神博客:http://blog.csdn.net/haoel/article/details/2886makefile很重要      什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和profes

2017-05-25 10:06:44 373

原创 Makefile中如何根据源文件自动生成其所需要的头文件

前言Makefile自动生成头文件依赖是很常用的功能,本文的目的是想尽量详细说明其中的原理和过程。Makefile模板首先给出一个本人在小项目中常用的Makefile模板,支持自动生成头文件依赖。CC = gcc CFLAGS = -Wall -OINCLUDEFLAGS = LDFLAGS = OBJS = seq.oTARGETS = t

2017-05-24 17:21:34 1236

原创 makefile的一些笔记

0.makefile文件可以命名为   makefile  Makefile0.1 makefile的格式:     targets : prerequisites       command1.makefile 的命令一定要用【Tab】键2.在命令和非命令行前加 “ - ” ,代表如果这里出错忽略,比如   -include foo.make   如果找不到也继续

2017-05-23 23:13:30 251

原创 C标准库函数实现之strstr

C标准库函数实现之strstr昨天去参加一个面试,发现自己的代码水平还是不够,谢了两次才写出来,连基本的标准库实现,都没法做好,遂决定对标准库中的部分函数的实现研习一番。面试的是 char* strstr( char* s1 , char* s2 )函数,自己写的就不说了,写得很烂,不过看了minix代码,里面的实现思路和我一样,Linux的代码中,对这个函数有用汇编来进行实现

2017-05-23 13:58:09 422

原创 http、TCP、IP的形象比喻

1.TCP、IP主要的作用就是保证连接的可靠性,我不管发出任何东西给你,都要有这一套协议来保证不丢包2.比如说TCP协议就是这样,无论上层让他传啥数据,他都通过与IP协议的操作,把这些东西分段,然后输送,同时保证在这个过程中,数据不会丢,如果丢了一块,他还得想办法重新传一次。这就是TCP、IP的意义3.另外,HTTP协议,可以认为主要是用来访问网页的,是比TCP更上层的协议,http里面规定了我们

2017-05-16 17:05:10 1628

原创 c++之友元的用法

1.为什么要有友元函数,是为了解决申明问题?所谓的友元函数就是为了解决一个当A类中有私有成员时,B类取访问他只能通过A类中的接口取访问,会造成如下麻烦:class A{public: int gethour() {return hour;} int getmin() {return min;} int getsec() {return sec;}privat

2017-05-13 11:17:59 213

原创 链接文件lds的一个例子解析

开始构造section了。由于使用的语法是固定的,我们只需要了解一个例子,其余的就可举一反三。以第一个section为例:.text.head : AT(ADDR(.text.head) - LOAD_OFFSET) {      _text = .;               /* Text and read-only data */       *(.text.hea

2017-05-11 09:59:26 1775 1

转载 ARM平台下elf文件超详细的分析与解读

第一、前言从今天开始我们正式开始Android的逆向之旅,关于逆向的相关知识,想必大家都不陌生了,逆向领域是一个充满挑战和神秘的领域。作为一名Android开发者,每个人都想去探索这个领域,因为一旦你破解了别人的内容,成就感肯定爆棚,不过相反的是,我们不仅要研究破解之道,也要研究加密之道,因为加密和破解是相生相克的。但是我们在破解的过程中可能最头疼的是native层,也就是so文件的破解。

2017-05-04 14:17:54 15320 1

转载 Linux下的lds链接脚本基础

Linux下的lds链接脚本基础  今天在看uboot引导Linux部分,发现要对链接脚本深入了解,才能知道各个目标文件的内存分布映像,下面是我看到的一些资料0. Contents 1. 概论2. 基本概念3. 脚本格式4. 简单例子5. 简单脚本命令6. 对符号的赋值7. SECTIO

2017-05-02 16:42:47 473

转载 Linux 设备驱动的固件firmware加载

转载自http://blog.csdn.net/zqixiao_09/article/details/51106663作为一个驱动作者, 你可能发现你面对一个设备必须在它能支持工作前下载固件到它里面. 硬件市场的许多地方的竞争是如此得强烈, 以至于甚至一点用作设备控制固件的 EEPROM 的成本制造商都不愿意花费. 因此固件发布在随硬件一起的一张 CD 上, 并且操作系统负责传

2017-04-17 09:35:18 15779 1

原创 malloc()分配的堆内存为什么比实际的大

请看,如果用malloc(n)来分配堆内存,那么分配的内存比n大,为什么呢?0.malloc分配的内存不一定连续,所以需要header指针来链接各部分1.实际分配的堆内存是Header + n结构。返回给用户的是n部分的首地址  所以他还有一部分内存是用来存header的,所以比原始的大2.由于内存对齐值8,内存对其机制,实际分配的堆内存大于等于sizeof(Header) + n

2017-04-15 19:00:05 1807

原创 个人理解的整数自动转换原则

个人理解是下面两点:1.字节数少的往字节数大的转,因为你字节数少,那不可能让别人把数据阶段了和你做运算,就像路上两个人,一个人说他是建瓯人,另外一个人说他是南平人,那么对于一个不懂建瓯和南平在哪里的人就无法分别出你两归属地是什么关系,于是第一个人就得说我是南平市建瓯市人,另外一个人说他是南平市人,这样这个老外就知道你两其实是同一个地级市的人。2.有符号的往无符号的转换都是有符号

2017-04-15 18:41:22 361

原创 为什么ISR内部不可以用printf和malloc函数

首先printf和malloc函数都是不可重入函数:printf --------引用全局变量stdoutmalloc --------全局内存分配表而中断是随机发生的,如果先使用printf函数,此时中断来临,最后中断里面又使用了printf,那么此时就会改变全局变量stdout的值,也就是最后输出到屏幕的值不是自己所期望的。

2017-04-15 17:52:41 1405

转载 可重入与不可重入函数的区别以及对程序的影响

重入一般可以理解为一个函数在同时多次调用,例如操作系统在进程调度过程中,或者单片机、处理器等的中断的时候会发生重入的现象。一般浮点运算都是由专门的硬件来完成,举个例子假设有个硬件寄存器名字叫做FLOAT,用来计算和存放浮点数的中间运算结果假设有这么个函数void fun(){//...这个函数对FLOAT寄存器进行操作}假如第一次执行,有个对浮点数操作运算的结果临时存在FLOAT寄存

2017-04-15 17:48:32 709

转载 关键字volatile解释及对程序的影响

1. 为什么用volatile?    C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明:A volatile specifier is a hint to a compiler that

2017-04-15 17:24:48 307

转载 操作系统管理内存的机制——为什么要设置虚拟内存

在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。一 早期的内存分配机制        在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。那当程序

2017-04-12 10:55:55 3761

原创 虚拟内存和物理内存的理解

前一段时间在面试总监的时候,总监问了我这样的一个问题:你个我说说物理内存和虚拟内存到底是怎么一回事?其实之前我看过这个问题,据我理解的,当时是这么回答的“进程在运行的时候,操作系统都为其分配一个4GB的地址空间,即所谓的虚拟地址空间,一般情况下,当我们的程序很大的时候,实际的物理内存根本不能满足我们的需求的时候,这个时候操作系统就会借助磁盘空间来做虚拟的内存空间,把当前进程不需要的数据放在磁盘

2017-04-12 10:02:09 333

转载 虚拟地址的理解

原文:http://blog.csdn.net/do2jiang/article/details/4690967 在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。一 早期的内存分配机制在 早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址

2017-04-09 13:10:48 1011

原创 关于C中编译后RO,RW,ZI的含义

下面我将给出几个例子,最直观的来说明RO,RW,ZI在C中是什么意思。            1; RO            看下面两段程序,他们之间差了一条语句,这条语句就是声明一个字符常量。因此按照我们之前说的,他们之间应该只会在RO数据中相差一个字节(字符常量为1字节)。            Prog1:            #include            

2017-03-17 15:13:20 1325

转载 Scatter文件的编写及实例分析

scatter 可以用AT:(地址)来指定加载地址今天拿了被同事扔一边的ARM培训资料翻阅,读至scatter一节,发现写得甚是精辟。之前看的很多国人写得文章,未免有简单问题复杂化之嫌。而ARM的RVCT手册又偏冗长,不易让人立刻看到重点。今归纳如下:scatter基本点:1. 编译后输出的映像文件中各段是首尾相连的,中间没有空闲的区域,它们的先后关系是根据链接时参数的先后次序

2017-03-17 14:59:22 887

转载 Scatter File的用法(转载)

原文:http://www.xcoming.com/?p=31对于嵌入式开发来说,scatter file显得异常重要,尤其是想把某段内容链接到指定的地址区域的时候,这些内容可以是code、const常量和变量。如果是ARM平台的话,在ARM的linker guide里有详细介绍scatter file的用法。其实DSP程序的开发也会有类似scatter file的东西,记得当

2017-03-17 14:42:07 1432

关于高通RIL很深入的讲解-逻辑性强

关于高通RIL很深入的讲解-逻辑性强

2017-02-20

Android的Message机制(Handler、Message、Looper)

对于Android的Message机制主要涉及到三个主要的类,分别是Handler、Message、Looper;首先对每个类做一个简单介绍;然后再介绍所谓的Android的Message机制是如何实现的,最后给了一个示例。

2017-02-16

空空如也

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

TA关注的人

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