自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

转载 TCP三次握手/四次挥手详解

一,TCP(Transmission Control Protocol) 传输控制协议         TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:二,三次握手过程        第一次握手:主机A发送位码为SYN=1,随机产生seq =X 的数据包到服务器,主机B由SYN=1知道,A要求建立联机。(A处于SYN - SENT,B处

2012-12-19 22:22:41 468

转载 Linux进程内存映射

内核区,1GB,用户代码不能直接访问,只能通过系统调用执行。栈,可变大小,一般为8MB,同时栈顶有对应进程的结构体,所以,栈空间小于实际设置的大小。栈从上至下增长,所以如果栈溢出,则会破坏进程结构体。内存映射区,也就是mmap实现的,负责将文件映射到内存,这样就可以直接访问,不需要通过read,而是直接通过指针访问。堆,由下而上增长,malloc负责调用。BSS段,未初始化的全局或

2012-12-13 21:44:09 540

转载 嵌入式Linux开发板常见问题

华恒ColdFire系列嵌入式Linux开发板常见问题解答——基于公用核心板HHCF5249/5272(华恒科技版权所有)1、关于宿主机Linux的安装建议使用REDHAT系列:建议选择完全安装,即选择Custom,然后在Package中选择everything。【以下配置详见最新PDF手册下载(例如:HHCO5272-R1的手册)】

2012-12-04 15:28:47 5004 1

转载 pthread_cond_t和pthread_mutex_t的疑问?解决办法

pthread_cond_t和pthread_mutex_t的疑问?解决办法pthread_cond_t和pthread_mutex_t的疑问?虽然看了些资料,但是还是不懂pthread_cond_t前面为什么要加一个pthread_mutex_t?还有加锁后什么时候解锁呢? 如: pthread_mutex_t mutex;  pthread_co

2012-11-24 18:45:37 696

转载 三次握手与四次挥手

TCP三次握手 所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。 三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。

2012-11-16 23:51:35 625

转载 dup,dup2深入理解

Linux支持各种各样的文件系统格式,如ext2、ext3、reiserfs、FAT、NTFS、iso9660等等,不同的磁盘分区、光盘或其它存储设备都有不同的文件系统格式,然而这些文件系统都可以mount到某个目录下,使我们看到一个统一的目录树,各种文件系统上的目录和文件我们用ls命令看起来是一样的,读写操作用起来也都是一样的,这是怎么做到的呢?Linux内核在各种不同的文件系统格式之上做了一个

2012-11-01 22:02:40 686

转载 内存理解2

局部变量保存在栈里栈和堆的区别是栈是系统根据变量大小自动分配空间的堆是你用new,malloc等手动分配空间的局部变量保存在栈内存区;栈内存区的地址是连续的,由系统控制速度较快而堆内存区的地址是不连续的,它是系统将空闲内存块链接起来的链表,用户用new/malloc请求分配时,找到第一个满足大小要求的块从链表中删除此节点,然后分给用户,没有栈内存速度快,但是很灵

2012-10-26 01:31:49 389

转载 内存理解

Linux内存管理摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨

2012-10-26 01:28:28 469

转载 对lds链接脚本的分析,唉!

连接脚本将我整整蒙了1天零一个上午,做了很多实验,看了人家不少例子代码勉强能驾驭了,让linker按照我想要的来处理,做个笔记。1,什么叫输入段,什么叫输出段不知道怎么回事,我对GCC系列的输入和输出两个单词总是进入思维死角,很简单就是 input section 和 output section,这里不是说翻译的问题,我觉得是一种思考的方式的问题。我的问题就是:既然叫输入端,那输入什

2012-10-03 00:14:16 715

转载 (void(*)(void))func()的解读

根据 Andrew Koening在他的《C 陷阱与缺陷》里对(*(void (*)( ) )0)( )的分析得到以下结论。1.如何声明一个变量?float *g():g是一个函数,他的返回值是一个指针,该指针指向一个float数。     float (*h)(float):h是一个指针,该指针指向一个函数,这个函数的返回值是float类型的,这个函数的参数是float类

2012-09-28 00:51:38 1796

转载 arm9 norflash与nandflash启动过程分析

1)接口区别:NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来。NAND Flash地址线和数据线在一起,需要用程序来控制,才能出数据。通俗的说,就是光给地址不行,要先命令,再给地址,才能读到NAND的数据。而且都是在一个总线完成的。结论是:ARM无法从NAND直接启动。除非装载完程序,才能使用NAND Flash.2)性能区别NOR的传

2012-09-24 21:27:45 2968

转载 对 S3C2410 启动代码内数据复制过程的分析

对 S3C2410 启动代码内数据复制过程的分析     本文若有错误之处,欢迎来信指正。S3C2410 启动后先进行一些必要的设置,如关 WatchDog,设置 PLL 与时钟,配置 SDRAM,初始化堆栈等,网上有很多分析启动代码的文章,本文不打算再进行说明。 本文分从 NOR Flash 与 NAND Flash 启动两种情况分别进行分析。首先要知道 NOR Flash 是

2012-09-21 01:27:43 1194

转载 通用makefile2

SRCS = $(wildcard *.c)OBJS = $(SRCS:.c = .o)CC = gccINCLUDES = -I/home/noah/build_sqlite3/includeLIBS = -L/home/noah/build_sqlite3/lib -lsqlite3CCFLAGS = -g -Wall -O0my_app : $(OBJS) $(CC) $^ -

2012-09-16 17:48:33 369

转载 一个通用makefile的编写

linux编译多个源文件的程序比较麻烦,这下就需要通用的Makefile了,编译的时候执行一下make命令就OK,下面介绍通用makfile的写法。假设现在有以下源文件:file1.h file1.c file2.h file2.c mainproc.c,程序的主函数在mainproc.c中。#######通用Makefile模板######### 目标文件名字TARGET = Mypro

2012-09-16 17:16:42 484

转载 网络编程——cli.c

#include #include #include #include #include #include #include #include #define CLIENT_LOGIN 100#define CLIENT_CHAT 200#define CLIENT_QUIT 300#define SERVER_CHAT 400#defin

2012-09-09 18:03:11 687

转载 网络编程——srv.c

#include #include #include #include #include #include #include #include #define CLIENT_LOGIN 100#define CLIENT_CHAT 200#define CLIENT_QUIT 300#define SERVER_CHAT 400#defin

2012-09-09 18:00:11 715

转载 linux c内存模型

SECTIONS {...secname start BLOCK(align) (NOLOAD) : AT ( ldadr )  { contents } >region :phdr =fill...}secname:段名contents:决定哪些内容存放在此段start:本段的连接地址(实际运行地址)AT(ldadr):存储地址(加载的地址)//例子U

2012-08-30 10:57:26 1311

转载 不使用库函数实现strcpy函数

char *strcpy(char *strDest, const char *strSrc) {   assert((strDest != NULL)&&(strSrc !=NULL));   char *tmp = strDest;   while ((*strDest++ = *strSrc++) !='\0')     {       ;//或是 NULL;     }

2012-08-29 22:46:15 999

3500常用字行书速成_钱沛云

这位老兄的字不错

2015-07-04

空空如也

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

TA关注的人

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