C
文章平均质量分 58
Joe_vv
这个作者很懒,什么都没留下…
展开
-
[翻译]《The New C》——几篇介绍C99特性的文章 2010年4月30日更新
这是我看到的一个帖子,如题。 很不错。与大家分享。 详情参考:here转载 2012-01-17 10:55:46 · 1331 阅读 · 0 评论 -
32位与64位下各类型长度对比
64 位的优点:64 位的应用程序可以直接访问 4EB 的内存和文件大小最大达到4 EB(2 的 63 次幂);可以访问大型数据库。本文介绍的是64位下C语言开发程序注意事项。1 32 位和 64 位C数据类型32和64位C语言内置数据类型,如下表所示。bit Linux下程序开发注意事项" title="64 bit Linux下程序开发注意事项" style="marg转载 2013-09-13 16:28:52 · 171882 阅读 · 12 评论 -
运行suricata报错:Illegal instruction 解决方法
我在机器A上编译suricata成功,且在机器A上能正常运行suricata;如果把在机器A上编译的suricata拷贝到机器B上运行,就会报错:Illegal instruction。这让我百思不得其解,随后上网苦找了一番资料,介绍“Illegal instruction”错误的文章也不少,其中有一点说到了我这种情况,那就是CPU架构选择的选项“-march”。于是我查看了下我编译suric原创 2013-09-24 10:04:37 · 5160 阅读 · 0 评论 -
fwrite和fread函数的用法小结
fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出。#include size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *s转载 2013-10-16 16:55:50 · 153730 阅读 · 1 评论 -
fopen 打开方式
文件的打开(fopen函数)fopen函数用来打开一个文件,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式);其中, “文件指针名”必须是被说明为FILE 类型的指针变量; “文件名”是被打开文件的文件名; “使用文件方式”是指文件的类型和操作要求。 “文件名”是字符串常量或字符串数组。例如:FI转载 2013-10-16 17:08:15 · 3386 阅读 · 0 评论 -
开源日志系统 log4c 使用心得+总结
本人最近研究了一下开源的日志系统log4c。简单总结一下:一、安装:我看网上好多人介绍log4c安装的时候都说有两个步骤:先下载expat安装包并安装expat,然后下载log4c安装包并安装log4c。这么看来,log4c是依赖expat的。但是有时候我们不想使用的日志系统还要依赖别的库,毕竟现在的开源日志系统很多,这样一来log4c就没有那么大的优势了。所以我仔细看原创 2012-01-18 11:00:59 · 30929 阅读 · 15 评论 -
IP地址转换函数
IP地址转换函数:unsigned long inet_addr (const char *cp);inet_addr将一个点分十进制IP地址字符串转换成32位数字表示的IP地址(网络字节顺序)。 char* inet_ntoa (struct in_addr in);inet_ntoa将一个32位数字表示的IP地址转换成点分十进制IP地址字符串。转载 2012-12-27 11:03:38 · 1704 阅读 · 0 评论 -
strtok()函数和strtok_r()函数比较
strtok函数用于字符串分割,但是该函数的缺点是会修改原字符串,并且最重要的是该函数不支持嵌套,由于函数内部使用了静态变量。而Unix下的strtok_r()函数是比较安全的一个函数,它可以用于嵌套!具体的用法及原理见:C中strtok()函数和strtok_r()函数strtok()和strtok_r()原创 2013-04-15 13:21:55 · 1597 阅读 · 1 评论 -
error: implicit declaration of function ‘pthread_mutexattr_settype’ 引出GNU_SOURCE探索
这两天在做64位移植的工作,在编译某组建时报错如下:error: implicit declaration of function ‘pthread_mutexattr_settype’造成这个错误的原因网上已经说得很明白了,就是由于没有添加所需要的头文件导致的,于是找到了函数pthread_mutexattr_settype的声明(在 文件中):#ifdef _原创 2013-05-23 14:58:32 · 10007 阅读 · 2 评论 -
iconv函数详解
大家都知道 iconv() 是编码转换函数,但是各个参数的具体含义可能不是那么清楚。我简单介绍一下:头文件:#include 函数声明:size_t iconv(iconv_t cd, char **restrict inbuf, size_t *restrict inbytesleft, char **restri原创 2013-05-30 16:52:15 · 16221 阅读 · 0 评论 -
error: expected declaration specifiers or '...' before ***
编译时报错:error: expected declaration specifiers or '...' before ***这个原因是由于头文件包含顺序有误导致的,如果a.h中#include b.h而b.h中的函数声明中用到了a.h中的结构体或者typedef,那么就会出现在包含b.h的时候a.h中的结构体或者typedef还没有声明,从而陷入错误,可以把结构体或者typedef原创 2013-09-10 16:51:41 · 66912 阅读 · 2 评论 -
fnmatch函数
名称fnmatch 匹配文件名或路径名 staging 模块# includefnmatch.h> int fnmatch(const char *图案, const char *string , int flags); 描述在fnmatch()函数检查匹配 pattern 的字符串参数,它是一个 shell 的通配符模式.flags 参数的修改行为;转载 2012-05-31 17:16:57 · 8408 阅读 · 0 评论 -
error: two or more data types in declaration specifiers原因及解决方法
编译时报错:error: two or more data types in declaration specifiers原因可能有两个:1. 少了一个分号";",比如定义一个结构体时,在最后忘了加分号。2. 重复定义,比如:a.h文件中有如下定义:#define bool charb.h文件中有如下定义:typedef char bool;原创 2013-09-13 13:48:33 · 38604 阅读 · 2 评论