enum 数值 和 字符串的对应

static const char *state_name[] = {    "One String",    "OK",    "Field List",    "Sleep",    "Fiel...

2016-01-26 14:38:52

阅读数 479

评论数 0

asprintf

函数原型: int asprintf(char **strp, const char *fmt, ...); 功能: asprintf()可以说是一个增强版的sprintf(),在不确定字符串的长度时,非常灵活方便,能够根据格式化的字符串长度,申请足够的内存空间。此外,使用完后,...

2016-01-25 15:55:57

阅读数 839

评论数 0

结构体中.和->的用法

[cpp] view plain copy  print? #include"stdio.h"   #include"stdlib.h"      struct linkwqf{       int age;      ...

2016-01-22 11:32:20

阅读数 263

评论数 0

__attribute__ 你知多少?

GNU C 的一大特色就是__attribute__ 机制。__attribute__ 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。 __attribute__ 书写特征是:_...

2016-01-20 13:26:05

阅读数 169

评论数 0

#pragma pack(n)和__attribute__((aligned(m)))的区别

#pragma pack(n)和__attribute__((aligned(m)))的区别: 前 者告诉编译器结构体或类内部的成员变量相对于第一个变量的地址的偏移量的对齐方式,缺省情况下,编译器按照自然边界对齐,当变量所需的自然对齐边界比n大 时,按照n对齐,否则按照自然边界对齐;后者告诉...

2016-01-20 09:37:59

阅读数 211

评论数 0

printf %.*s

小数点.后“*”表示输出位数,具体的数据来自参数表 printf格式字符串中,与宽度控制和精度控制有关的常量都可以换成变量,方法就是使用一个“*”代替那个常量,然后在后面提供变量给“*”。 同样,小数点.前也可以添加*,也要用户输入一个位宽值来代替,表示输出的字符所占位宽。 #i...

2016-01-15 10:57:29

阅读数 219

评论数 0

ld.so.conf的错误

报symbol lookup error:    undefined symbol:的错误 1)用ldd一看 是动态库链接错误,如下所示: 2)进入/etc/ld.so.conf进行修改,加入路径即可。

2016-01-14 10:44:52

阅读数 400

评论数 0

.lo后缀文件

o: 编译的目标文件 a: 静态库,其实就是把若干o文件打了个包 so: 动态链接库(共享库) lo: 使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息 la: 使用libtool编译出的库文件,其实是个文本文件,记录同名动态库和静态库的相关信息

2016-01-13 14:48:52

阅读数 327

评论数 0

ILP32和LP64数据模型

32位环境涉及"ILP32"数据模型,是因为C数据类型为32位的int、long、指针。而64位环境使用不同的数据模型,此时的long和指针已为64位,故称作"LP64"数据模型。 现今所有64位的类Unix平台均使用LP64数据模型,而64位Wind...

2016-01-12 15:31:07

阅读数 596

评论数 0

declspec(dllimport) 和__stdcall

函数被调用前,所有参数压入栈内,返回时要释放堆栈; __stdcall 告诉编译器在函数返回时用 ret x 方式,即由被调用函数释放堆栈; 如果不加 __stdcall, 则函数返回直接ret,由调用者释放堆栈. declspec(dllexport)和declspec...

2016-01-12 15:30:05

阅读数 341

评论数 0

__cplusplus

常在cpp的代码之中看到这样的代码:      #ifdef __cplusplus      extern "C" {      #endif     //一段代码      #ifdef __cplusplus      } ...

2016-01-12 15:01:28

阅读数 195

评论数 0

缓冲I/O与非缓冲I/O(fopen与open系列函数区别)

在程序中,对于文件的读写,程序运行时间主要消耗在I/O上。与读写内存相比,读写硬盘上的文件慢很多;每次读取/写入文件的内容很少的话,那么程序运行时间主要消耗在I/O上了。因此有了缓冲I/O和非缓冲I/O。 非缓冲I/O,每次对于文件的操作,都要进行I/O操作。例如Linux的系统条用: ...

2016-01-12 11:12:27

阅读数 279

评论数 0

iovec结构体 与readv和writev相关

简介编辑 I/O vector,与readv和wirtev操作相关的结构体。readv和writev函数用于在一次函数调用中读、写多个非连续缓冲区。有时也将这两个函数称为散布读(scatter read)和聚集写(gather write)。 所在头文件编辑 ...

2016-01-11 16:59:55

阅读数 320

评论数 0

今天开始系统学习linux、c

以下是来自其他博客,非常感谢,给我指明学习方向,今天贴在这里是提醒自己好好学习,不忘初心。 无论如何都要坚持住,年底必是硕果累累。 1、先从《C primer plus》、《The Cprogramming_Language》入手,购买此两本书,以前断断续续的也看过,看能不能年前看完此两本书。...

2016-01-11 10:06:35

阅读数 192

评论数 0

指针函数与函数指针的区别

一、 在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义: 1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针      类型标识符    *函数名(参数表)     ...

2016-01-06 15:47:30

阅读数 128

评论数 0

正则表达式与通配符的区别

首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同! find:开始之前,我们先来看一下 find 命令的基本结构:find start_directory test options criteria_to_match action_to_perform_on_results...

2016-01-04 17:05:40

阅读数 271

评论数 0

grep正则表达式-高级

虽然正则表达式经常都在用,但是很少能够静下心来仔细的总结一下。最近看了一个台湾人的网站叫做鸟哥Linux私房菜,关于正则表达式的描述挺详细的。在此,我进行一下总结,如果想仔细的学习正则表达式,请访问鸟哥Linux私房菜,台湾同胞的网站是繁体中文的,需要点儿耐心。      正则表达式只是字符...

2016-01-04 17:00:49

阅读数 243

评论数 0

libpcap

//pcaptest.htypedef struct{//定义以太网的头部数据类型 u_char dmac[6]; u_char smac[6]; u_char etype[2]; }ETHHEADER; typedef struct{//IP 层数据包报文头部的数据类型 u_char...

2015-12-31 10:12:01

阅读数 654

评论数 0

gcc $< $@

$@表示目标,$^表示依赖列表 target:dependency1 dependency2 gcc -o $@ $ $@ 就是target $

2015-12-30 11:30:24

阅读数 531

评论数 0

socket udp通信

基本流程: 1)udp套接字创建 调用socket()函数,采用SOCK_DGRAM方式,创建一个基于UDP的套接字。 2)地址与端口的绑定 绑定一个ip地址与端口,仍是bind函数 3)数据收发 调用sendto和recvfrom()函数进行数据收发。在UDP不需要调用connect()、lis...

2015-12-28 17:06:06

阅读数 206

评论数 0

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