- 博客(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
嵌入式环境搭建之samba
2013-08-05
bonjour软件包,mDNSResponder
2011-07-03
getpid()编程getpid()编程getpid()编程getpid()编程
2010-11-14
fork3()编程fork3()编程fork3()编程fork3()编程fork3()编程
2010-11-14
fork1() 编程fork1() 编程fork1() 编程fork1() 编程
2010-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人