自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

冀博

tiger-john不懈学习嵌入式ing-- 尘事中一个迷途,小小硕士

  • 博客(216)
  • 资源 (22)
  • 收藏
  • 关注

原创 未格式化的行I/O

一.前言1.行I/O可以用两种方式执行—未格式化的或格式化的。这两种形式都用于操作字符串。2.未格式化的I/O:简单读取或写入字符串,而格式化的I/O则执行数字和其他变量的内部和外部表示形式之间的转换。二.未格式化I/O1.未格式化I/O函数声明1>char *fgets(char *buffer,int buffer_size,FILE *stream);2>char *gets(char *b

2012-02-09 20:12:41 2037

原创 C语言中的刷新和定位函数

一.fflush1.fflush的原型如下:int fflush(FILE  *stream);2.当需要立即把输出缓冲区的数据进行物理写入时,应该使用这个函数。例如调用fflush函数保证调试信息实际打印出来,而不是保存在缓冲区中直到以后才打印。二.定位函数1.在正常情况下,数据以线性的方式写入,这意味着后面写入的数据在文件中的位置是在以前所有写入数据的后面。C同时支持随机访问I/O,也就是以任

2012-02-09 20:09:59 4858

原创 C语言中的输入输出函数

一.错误报告1.perror()函数是一种简单、统一的方式报告错误。ansi c 函数库的许多函数调用操作系统来完成某些任务,I/O函数尤其如此。任何时候,当操作系统根据要求执行一些任何的时候,都存在失败的可能。标准库函数在一个外部整型变量errno(在errno.h中定义)中保存错误代码之后把这个信息传递给用户程序,提示操作失败的准确原因。2.perror()函数的原型:#includevoid

2012-02-09 20:08:09 3043

原创 C函数中的二进制I/O

一.前言把数据写到文件效率最高的方法是用二进制形式写入。二进制输出避免了在数值转换为字符串过程中所涉及的开销和精度损失。但二进制数据并非人眼所能阅读。所以该方法只有当数据被另一个程序按顺序读取时才能使用。fread函数用于读取二进制数据,fwrite函数用于写入二进制数据。二.fread和fwrite1.fread()和fwirte函数原型1>size_t fread(void  *buffer,

2012-02-09 20:05:45 2581

原创 scanf家族和printf家族

一.scanf家族1.scanf家族的原型如下。每个原型中的省略号表示一个可变长度的指针列表。从输入转换而来的值逐个存储到这些指针参数所指向的内存位置。int  fscanf(FILE  *stream,char  const *format,…);int   scanf(char const  *format,…);int  sscanf(char  const  *format,…);2.以上

2012-02-09 13:00:31 2583

原创 预处理器

一.前言1.编译一个C程序涉及很多步骤。其中第一步骤称为预处理(preprocessing)阶段。C预处理器(preprocessor)在源代码编译之前对其进行文本性质的操作。2.它的主要任务包括删除注释、插入被#include指令包含的内容、定义和替换由#define指令定义的符号以及确定代码的部分内容是否应该根据一些条件编译指令经行编译。二.预定义符号1.以下为预处理器定义的符号。它们的值或者

2012-02-05 16:45:59 3706

原创 字符串常量

1.当一个字符串常量出现于表达式中时,它的值是一个指针常量。编译器被这些指定字符的一份拷贝存储在内存的某个位置,并存储一个指向第一个字符的指针。(数组名用于表达式中时,它的值也是指针常量)2.”xyz”+1因为字符串常量实际上是个常量指针,这个表达式计算“指针值加上1”的数值。它的结果是个指针,指向字符串中的第2个字符:y。3.*”xyz”因为“xyz”是一个指针常量,指向字符串的第一个字符。因此

2012-02-03 11:54:02 2121

原创 动态内存分配

前言1.数组的元素存储于内存中连续的位置上。当一个数组被声明时,它所需要的内存在编译时就被分配。2.但是我们也可以使用动态内存分配在运行时为它分配内存。3.为什么使用动态内存分配1>当使用数组时,必须用一个常量来指定数组的长度。但是,有时候,数组的长度常常在运行时才知道。因此,在某些情况下,我们通常采取声明一个较大的数组,它可以容纳可能出现的最多元素。2>该方法的优点是:简单。3>它的缺点是:Ø

2012-02-01 19:56:40 7968

原创 位段

1.位段的声明和结构类似,但它的成员是一个或多个位的字段。这些不同长度的字段实际上存储于一个或多个整型变量中。2.位段的声明和任何普通的结构成员声明相同,但有两个例外。1>位段成员必须声明为int,singed int 或unsigned int类型。2>其次,在成员名的后面是一个冒号和一个整数,这个整数指定该位段所占用的位的数目。eg:struct  CHAR {      unsigned

2012-01-30 20:36:29 2352

原创 C语言复习之结构体和指针

一前言:1>下面所用到的实例为:typedef  struct {           int     a;           short   b[2];}Ex2;typedef  struct EX  {           int   a;           char  b[3];           Ex2   c;           struct  EX  *d;}EX;2>类型为E

2012-01-30 17:35:34 3218

原创 C语言复习之结构体基础知识

一.基础知识1.聚合数据类型(aggregate data type)能够同时存储超过一个的单独数据。C提供了两种类型的聚合数据类型,数组和结构。(1)数组是相同类型的元素的集合,它的每个元素是通过下标引用或指针间接访问来选择的。(2)结构也是一些值的集合,这些值称为它的成员(member),但一个结构的各个成员可能具有不同的类型。2.数组元素可以通过下标访问,这只是因为数组的元素长度相同。3.由

2012-01-29 16:50:09 3128

原创 Linux时间函数之gettimeofday()函数之使用方法

一.gettimeofday()函数的使用方法:1.简介:在C语言中可以使用函数gettimeofday()函数来得到时间。它的精度可以达到微妙2.函数原型:#includeint gettimeofday(struct  timeval*tv,struct  timezone *tz )3.说明:gettimeofday()会把目前的时间用tv 结构体返回,当地时区的信息则放到tz所指的结构中4

2011-12-04 15:59:10 89391 4

原创 Linux之C语言中如何抛出异常或将异常写入日志文件中

Linux中用C语言写系统日志__________________________________________________________________________________________________Author:冀博Time :2011/11/24Emaile:jibo.tiger@gmail.com声明:本人不反对别人和团体转载本人文章,但请注明出处,3Q。对本文有任

2011-11-24 16:33:53 11367 8

转载 在ubuntu 下搭建 android开发环境

一、Java环境安装配置 Ubuntu java安装配置的详细步骤 1.下载jdk   下载连接http://java.sun.com/javase/downloads/index.jsp  选择jdk-6u24-linux-i586.bin下载,我下载的是最新的版本,将jdk-6u24-linux-i586.bin放置于目录/home/candycai/work(这个自己定义文件夹,无所谓)。2

2011-11-23 14:35:00 2404

原创 Linux之#pragma的用法

预编译指令#pragma的用法最近在看开源项目中的代码时,发现许多地方都用到了#pragma的程序。因此,就问了下谷歌老师,总结了下#pragma预编译指令的常用用法,现在和大家分享下。一.#pragma最常用的方法1. #progma pack(n)1>功能:使用#progma pack预编译指令可以改变编译器的默认值(不是绝对的,有些编译器只能是固定的数据对齐方式)。2>说明大多数情况下,我们

2011-11-22 16:07:59 17453 9

原创 Linux之动态库的创建和使用

Linux下动态库生成和使用一.动态库的基本概念1.动态链接库是程序运行时加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序。动态链接库是目标文件的集合,目标文件在动态链接库中的组织方式是按照特殊方式形成的。库中函数和变量的地址是相对地址,不是绝对地址,其真实地址在调用动态库的程序加载时形成。2.动态链接库的名称有别名(soname), 真名(realname)和链接名(lin

2011-11-20 09:45:29 11700 4

原创 Linxu之静态库生成和使用

Linux下静态库生成和使用一.静态库概念1.库是预编译的目标文件(object  files)的集合,它们可以被链接进程序。静态库以后缀为”.a”的特殊的存档(archive file)存储。2.标准系统库可在目录/usr/lib与/lib中找到。比如,在类Unix系统中C语言的数序库一般存储为文件/usr/lib/libm.a。该库中函数的原型声明在头文件/usr/include/math.h

2011-11-18 21:00:30 5124 8

原创 小白学Linux之gcc的一些常见用法

小白学Linux之gcc的一些常见用法1.gcc编译器对程序的编译,分为四个阶段:1>预编译(pre-processing):在预处理阶段,输入的是C语言的源文件,通常为*.c。它们一般带有*.h之类的头文件。这个阶段主要处理源文件中的#ifdef,#include,#define预处理命令。该阶段会生成一个中间文件*.i文件。这个阶段使用命令:    gcc –E  tiger.c –o  ti

2011-11-17 18:47:12 2564

原创 aasert()函数的用法

assert()函数的使用方法概述  Assert- 断言   编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。   使用断言

2011-11-13 17:01:50 2630

转载 ubuntu 下搭建arm-linux-gcc 命令未找到问题

很郁闷,找了近一个下午,老是提示arm-linux-gcc找不到,但是确实是装好了,其实是权限的问题,原帖如下:http://blog.sina.com.cn/s/blog_4670451c0100e1uw.htmlubuntu没有root权限,刚开始用碰到很多麻烦,查了好多资料,终于把arm-linux-gcc: Command not found 的问题解决了。问题:sudo tar jxvf

2011-11-03 22:25:17 12075 2

原创 C语言中随机函数应用

1前言:有些程序每次执行时不应该产生相同的结果,如游戏和模拟,此时随机数就非常有用。下面这两个函数合在一起使用能够产生伪随机数(pseudo-random  number):通过计算产生的随机数,可能有重复出现,所以并不是真正的随机数。int   rand(void);void  srand(unsigned  int  seed);1>rand返回一个范围在0和RAND_MAX(至少为32767

2011-10-10 17:50:48 4156 8

转载 linux 延时函数几个资料

linux 延时函数几个资料  转自http://blog.ednchina.com/qiu1123/251065/Message.aspx一、 基础知识1、时间类型。Linux下常用的时间类型有4个:time_t,struct timeval,struct timespec,s

2011-10-10 15:35:48 5298

转载 linux内核的三种调度方法

linux内核的三种调度方法:1,SCHED_OTHER 分时调度策略,2,SCHED_FIFO实时调度策略,先到先服务3,SCHED_RR实时调度策略,时间片轮转  实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,分时进程则通过nice和counter值决定权值,n

2011-10-07 15:57:44 5618

原创 如何查看一个端口被那个进程所占用

Linux网络编程之如何查看一个端口被那个进程所占用方法一:ps -ef | grep 程序名方法二:netstat -nltp | grep 端口号或服务名方法三:netstat -antup | grep 端口号

2011-10-05 11:46:49 4398

原创 Linux C之atio()函数

Linux C之atio()函数1.首先man下 ATOI(3)       Linux Programmer's Manual                   ATOI(3)NAME atoi, atol,atoll, atoq - convert a string to

2011-10-05 10:14:19 14431

原创 C语言中的带参数宏

C语言中的带参数宏一.带参数的宏1.带参数的宏定义不是简单的字符串替换,还要进行参数替换定义格式为:#define   宏名(参数表)  字符串1>字符串包含括号中所有指定的参数eg:  #define  S(a,b)   ((a)*(b))     area=S(3,2)2>编

2011-10-03 15:33:09 10831 1

原创 C语言中的宏定义

C语言中的宏定义C语言中的宏定义也叫做预处理命令,预处理命令是C语言本身的组成部分,不能直接对它们进行编译。1.基本概念;1>预处理不是C语句,是在编译前进行的2>预处理功能主要用于下3种情况:Ø  宏定义Ø  文件包含Ø  条件编译3>宏是在编译前进行的,程序不能直接对它们进行

2011-10-03 14:15:35 5417

原创 嵌入式C语言编程小知识总结

嵌入式C语言编程小知识1.   流水线被指令填满时才能发挥最大效能,即每时钟周期完成一条指令的执行(仅指单周期指令)。如果程序发生跳转,流水线会被清空,这将需要几个时钟才能使流水线再次填满。因此,尽量少的使用跳转指令可以提高程序执行效率,解决发案就是尽量使用指令的“条件执行”功能。2.   在LPC2200系列中:可以通过过下面的程序延迟10毫秒:for(i=0;i  {       for(j=

2011-10-03 11:11:12 6694 13

原创 字符串小知识点

字符串小知识点(持续更新)1.sizeof()和strlen()计算字符串的长度的区别1>sizeof()计算的字符串占空间的大小;sizeof常用来计算自定义结构体的大小2>strlen()计算的字符串的实际长度,但不包括最后字符串结束标志’\0’。例如:char a[20]=

2011-10-03 11:00:55 2453

原创 C函数之memset()函数用法

C函数之memset()函数用法1.功能:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向S的指针2. 需要的头文件  or 3.函数原型: void *memset(v

2011-10-03 10:45:08 27656

原创 C函数之memcpy()函数用法

函数原型void *memcpy(void*dest, const void *src, size_t n);功能由src指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始地址的空间内。头文件#include返回值  函数返回一个指向dest的指针。说明

2011-10-03 10:34:26 380489 7

原创 基于TCP/UDP的应用层协议有那些

基于TCP/UDP的应用层协议有那些TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。

2011-10-02 12:42:21 15648

原创 2012百度笔试图

一、简答      1、系统又很多任务,任务之间有依赖,比如B依赖于A,则A执行完后B才能执行            (1)不考虑系统并行性,设计一个函数(Task *Ptask,int Task_num)不考虑并行度,最快的方法完成所有任务。            (2)考虑并

2011-09-27 21:40:37 3756

转载 DNS报文格式(RFC1035)

一、域名和资源记录的定义1、Name space definitions2、资源记录定义(RR definitions)    2.1 格式         后面分析报文的时候详细解释。    2.2 类型值(TYPE values)         类型主要用在资源记录中,注意

2011-09-27 21:18:57 19270 4

原创 淘宝2012鄙视题(看看大家现在的实力)

淘宝2012鄙视题,大家都可以做下,测试下自己的实力,看自己有木有被鄙视一、单选题1、我们有很多瓶无色的液体,其中有一瓶是毒药,其它都是蒸馏水,实验的小白鼠喝了以后会在5分钟后死亡,而喝到蒸馏水的小白鼠则一切正常。现在有5只小白鼠,请问一下,我们用这五只小白鼠,5分钟的时间,能够

2011-09-27 15:22:02 3938 3

原创 enum的使用

枚举常量是枚举类型中的值,即枚举值。枚举类型是一种用户定义的类型,只有用户在程序中定义它后才能被使用。用户通常利用枚举类型定义程序中需要使用的一组相关的符号常量。枚举类型的定义格式为: enum {}; 它是一条枚举类型定义语句,该语句以enum保留字开始,接着为枚举类型名,它是用户命名的一个标识符,以后就直接使用它表示该类型,枚举类型名后为该类型的定义体,它是由一对花括号和其中的枚举表所组成,

2011-09-26 14:13:18 2305

转载 多线程编程-线程的创建和终止

转载:http://software.intel.com/zh-cn/blogs/2011/09/22/400007583/1.引言:Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用

2011-09-26 13:29:30 2253

转载 linux下错误的捕获:errno和strerror的使用

linux下错误的捕获:errno和strerror的使用经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因。这个时候使用errno这个全局变量

2011-09-25 15:43:15 40862 4

原创 linux系统中如何通过程序来获知系统信息

linux系统中如何通过程序来获知系统信息      最近在做一个项目,遇到要在程序中动态的获取设备硬件信息。纠结了我很长时间,今天突然发现原来在linux中有API函数直接就可以实现。对于好东西,当然要和大家share下了。一.uname()函数1.使用uname函数来实现获取

2011-09-23 09:42:46 2666 2

原创 基于Linux的多播编程

基于Linux的多播编程一.单播,广播和多播1.单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的

2011-09-22 17:11:57 9515 5

iperf windows安装包

iperf windows安装包

2013-09-08

ProGit中文手册

progit 中文手册

2013-08-05

progit官方英文手册

git官方原文手册,英文。

2013-08-05

buildroot使用手册

buildroot官方手册

2013-08-05

GNUC扩展用法

讲解了GNUC对标准C语言的扩展的特性和用法

2013-08-05

嵌入式环境搭建之samba

本文主要介绍了samba存在的前因后果,已经对samba进行简要介绍;并介绍了samba在ubuntu下安装,samba服务器端配置以及如何在window7共享samba服务器。最后,总结了samba的使场景。

2013-08-05

嵌入式环境搭建之NFS

本文介绍NFS相关概念,NFS配置文件以及介绍如何设置NFS服务端和客户端,并检验是否设置成功;并对出现的异常进行分析,同时给出一个嵌入式配置实例。

2013-08-05

内核链表在应用层应用

list.h在应用层应用

2012-12-14

bonjour软件包,mDNSResponder

bonjour软件包,开源代码bonjour软件包,开源代码bonjour软件包,开源代码,mDNSResponder,mDNSResponder

2011-07-03

bonjourSDK工具包

bonjourSDK工具包bonjourSDK工具包bonjourSDK工具包bonjourSDK工具包

2011-07-03

Avahi软件包,zeroconfig

Avahi是基于zeroconfig协议的自动发现软件

2011-07-03

Link local address

Link local address协议,是zeroconfig协议的组成之一

2011-07-02

基于UC/OS操作系统的UDP网络编程

基于UC/OS操作系统的UDP网络编程基于UC/OS操作系统的UDP网络编程

2011-03-02

以太网RTL8019AS数据手册

以太网RTL8019AS英文数据手册

2011-02-23

ARM体系结够之间的状态转换代码2

ARM体系结够之间的状态转换代码2ARM体系结够之间的状态转换代码

2011-01-10

ARM体系结够之间的状态转换代码1

ARM体系结够之间的状态转换代码1,ARM体系结够之间的状态转换代码

2011-01-10

getpid()编程getpid()编程getpid()编程getpid()编程

getpid()编程getpid()编程getpid()编程getpid()编程getpid()编程getpid()编程getpid()编程getpid()编程getpid()编程getpid()编程getpid()编程getpid()编程

2010-11-14

exit()编程exit()编程exit()编程exit()编程

exit()编程exit()编程exit()编程exit()编程exit()编程exit()编程

2010-11-14

wait()编程wait()编程wait()编程wait()编程

wait()编程wait()编程wait()编程wait()编程wait()编程

2010-11-14

fork3()编程fork3()编程fork3()编程fork3()编程fork3()编程

fork3()编程fork3()编程fork3()编程fork3()编程fork3()编程fork3()编程fork3()编程

2010-11-14

fork1() 编程fork1() 编程fork1() 编程fork1() 编程

fork1() 编程fork1() 编程fork1() 编程fork1() 编程fork1() 编程fork1() 编程fork1() 编程

2010-11-14

fork()编程fork()编程fork()编程

fork()编程fork()编程fork()编程fork()编程fork()编程fork()编程fork()编程

2010-11-14

空空如也

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

TA关注的人

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