上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 24 下一页

2014年1月6日

C/C++ 语言获取文件大小

摘要: 在C语言中测试文件的大小,主要使用二个标准函数。1.fseek 函数原型:int fseek ( FILE * stream, long int offset, int origin ); 参数说明:stream,文件流指针;offest,偏移量;orgin,原(始位置。其中orgin的可选值有SEEK_SET(文件开始)、SEEK_CUR(文件指针当前位置)、SEEK_END(文件结尾)。 函数说明:对于二进制模式打开的流,新的流位置是origin + offset。2.ftell 函数原型:long int ftell ( FILE * stream ); 函数说明:返回流的位置... 阅读全文

posted @ 2014-01-06 22:59 旭东的博客 阅读(44234) 评论(1) 推荐(1) 编辑

2014年1月4日

Linux C Socket编程发送结构体、文件详解及实例

摘要: 利用Socket发送文件、结构体、数字等,是在Socket编程中经常需要用到的。由于Socket只能发送字符串,所以可以使用发送字符串的方式发送文件、结构体、数字等等。本文:http://www.cnblogs.com/xudong-bupt/p/3496741.html1.memcpy Copy block of memory。内存块拷贝函数,该函数是标准库函数,可以进行二进制拷贝数据。 函数原型:void * memcpy ( void * destination, const void * source, size_t num ); 函数说明:从source指向的地址开始拷贝num... 阅读全文

posted @ 2014-01-04 19:21 旭东的博客 阅读(22799) 评论(1) 推荐(1) 编辑

Linux C 读取文件夹下所有文件(包括子文件夹)的文件名

摘要: 本文:http://www.cnblogs.com/xudong-bupt/p/3504442.htmlLinux C 下面读取文件夹要用到结构体struct dirent,在头#include 中,如下:#include struct dirent{ long d_ino; /* inode number 索引节点号 */ off_t d_off; /* offset to this dirent 在目录文件中的偏移 */ unsigned short d_reclen; /* length of this d_name 文件名长 */ unsigned char d_typ... 阅读全文

posted @ 2014-01-04 13:15 旭东的博客 阅读(78581) 评论(2) 推荐(4) 编辑

2013年12月29日

Linux C Socket编程原理及简单实例

摘要: 部分转自:http://goodcandle.cnblogs.com/archive/2005/12/10/294652.aspx1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 有很多的框架,为什么还在从Socket开始?5. Linux C Socket简单示例1.什么是TCP/IP、UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。 UDP(User Data Protocol,用户数据报.. 阅读全文

posted @ 2013-12-29 16:46 旭东的博客 阅读(80489) 评论(10) 推荐(14) 编辑

2013年12月24日

使用递归哈希进行精确模式串匹配

摘要: 字符串处理是每个编程者都必须掌握的知识,主要看看字符串的搜索查找功能。现在的编程语言如C/C++/Java等都提供了对字符串子串的查找功能,具体如下:(1)C:strchr,strstr。(2)C++:find,rfind,find_first_of,find_first_not_of等等。(3)Java:indexOf,lastIndexOf等。下面说明一种使用递归哈希进行字符串搜索/查找的方法:(1)递归哈希 维护一个窗口,大小为n。如下公式即为起始位置为x,长度为n的窗口的哈希数值。 递归哈希主要体现在哈希数值的更新操作,减少重复的计算。下面是递归哈希的更新公式。 因为窗口[x,x... 阅读全文

posted @ 2013-12-24 09:07 旭东的博客 阅读(2284) 评论(2) 推荐(0) 编辑

2013年12月23日

哈夫曼编码 哈夫曼树

摘要: 1.定义 哈夫曼编码主要用于数据压缩。 哈夫曼编码是一种可变长编码。该编码将出现频率高的字符,使用短编码;将出现频率低的字符,使用长编码。 变长编码的主要问题是,必须实现非前缀编码,即在一个字符集中,任何一个字符的编码都不是另一个字符编码的前缀。如:0、10就是非前缀编码,而0、01不是非前缀编码。2.哈夫曼树的构造 按照字符出现的频率,总是选择当前具有较小频率的两个节点,组合为一个新的节点,循环此过程知道只剩下一个节点为止。 对于5个字符A、B、C、D、E,频率分别用1、5、7、9、6表示,则构造树的过程如下: 上面过程对应的哈夫曼树为: 假设规定左边为0,右边为1,则变长... 阅读全文

posted @ 2013-12-23 15:57 旭东的博客 阅读(1949) 评论(1) 推荐(0) 编辑

2013年12月19日

二分查找 查找关键字的范围

摘要: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。二分查找对有序表查找的时间复杂度为lg(n)。一般的二分查找只是查找给定元素在数组中的位置或者是有存在给定的元素。下面的程序实现的功能是: 在顺序保存、有序的数组中查找给定关键字K的范围。程序: 1 #include 2 int values[]={1,2,3,5,7,7,7,7,9,10,10,10,12}; 3 4 /* 5 @low:查找范围的起始坐标 6 @high:查找范围的结束坐标 7 @key:待查找的关键字 8 @tag:查找标记。tag=0,表示查找关键字的最小坐... 阅读全文

posted @ 2013-12-19 14:48 旭东的博客 阅读(2816) 评论(0) 推荐(0) 编辑

2013年12月18日

linux C 多线程/线程池编程 同步实例

摘要: 在多线程、线程池编程中经常会遇到同步的问题。1.创建线程 函数原型:int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void*(*start_routine) (void *), void *arg); 参数:thread指向线程id的指针;attr指向线程属性的指针;第三个为执行的方法的函数指针;arg指向给方法传递的参数的指针。2.互斥变量 (1)互斥变量 pthread_mutex_t (2)互斥变量锁定 int pthread_mutex_lock(pthread_mutex_t *mutex... 阅读全文

posted @ 2013-12-18 19:22 旭东的博客 阅读(2686) 评论(0) 推荐(1) 编辑

C语言数字与字符串转换 atoi()函数、itoa()函数、sprintf()函数

摘要: 在编程中经常需要用到数字与字符串的转换,下面就总结一下。1.atoi() C/C++标准库函数,用于字符串到整数的转换。 函数原型:int atoi (const char * str);1 #include 2 #include 3 int main ()4 {5 char *numchars="1234";6 int num=atoi(numchars);7 printf("%d\n",num);8 return 0;9 } 另外C/C++还提供的标准库函数有: (1)long int atol ( const char * str ); (2... 阅读全文

posted @ 2013-12-18 11:14 旭东的博客 阅读(11938) 评论(0) 推荐(0) 编辑

2013年12月17日

C语言文件打开方式及说明

摘要: ANSI C规定文件打开用函数fopen,关闭为fclose。1、调用方式通常为:FILE *fp;fp=fopen(文件名, 打开方式);2、参数说明:文件名: 形如"myfile.dat"、"F:\data\myfile.dat"等等;打开方式: "r"(只读) 为输入打开一个文本文件 "w"(只写) 为输出打开一个文本文件 "a"(追加) 向文件文件尾添加数据 "rb"(只读) 为输入打开一个二进制文件 "wb"(只写) 为输出打开一个二进制文件 & 阅读全文

posted @ 2013-12-17 14:54 旭东的博客 阅读(17306) 评论(1) 推荐(0) 编辑

上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 24 下一页

导航