上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 25 下一页
摘要: NotePad++是绿色的。重装系统后需要自己添加右键菜单。网上给出的方案很类似——新建一个note.reg然后将下面的文字贴进去Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\Shell\NotePad++][HKEY_CLASSES_ROOT\*\Shell\NotePad++\Command]@="D:\\Program Files\\Notepad++\notepad++.exe \"%1\""notepad的路径要自己设置。但是说实话,在win下,我还真没有成功。于是win+r 阅读全文
posted @ 2012-04-13 23:08 westfly 阅读(435) 评论(0) 推荐(0) 编辑
摘要: UDP是无状态的,无法用TCP一样的并发服务器。我们可以用消息队列的方式模拟下。首先,我们看消息队列节点typedef struct msg_buf{ int sockfd; struct sockaddr_in their_addr; /* 连接对方的地址信息 */ int sin_size; char buf[BUFF_SIZE]; size_t len; struct msg_buf *next;}msgbuf_t;关于分配与释放的接口,比较习惯这样的方式了msgbuf_t *get_msgbuf(){ return (msgbuf_t... 阅读全文
posted @ 2012-04-13 22:45 westfly 阅读(1567) 评论(0) 推荐(0) 编辑
摘要: 今天遇到一个奇怪的问题。linux环境下gcc,socket中UDP的recvfrom函数原型ssize_t recvfrom(int sockfd,void *buf,int len,unsigned int flags, struct sockaddr *from,socket_t *fromlen);网上给出的最基本的UDP—echo服务器测试基本的是可以的。关于recvfrom的代码如下 char buf[BUFF_SIZE]; struct sockaddr_in their_addr; int sin_size; memset(buf,len,0); ... 阅读全文
posted @ 2012-04-13 21:00 westfly 阅读(5411) 评论(0) 推荐(0) 编辑
摘要: 相对于《简单多线程拷贝单文件v2》中,将文件下载的任务分块也作为线程,可以动态添加文件块任务。即是生产者与消费者模型。用了本Blog的《消息队列的实现》中的实现。用了《struct 初始化》中提到的参考代码方式。作为基类的msg_block_t。typedef struct ares_msg_block{ pthread_t pid; enum msg_object_type msg_type; void *data;///<*用于扩展的私有数据指针}msg_block_t;继承的msg_block_t的msg_thread_block_ttypedef s... 阅读全文
posted @ 2012-03-23 22:17 westfly 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 最近电脑休眠后,更新小红伞总是出现错误。avcenter.exe - Bad Image错误提示消息如下avcenter.exe - Bad Image c:\windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\COMCTL32.dll is either not designed to run on Windows or it contains an error. Try installing the program again . 阅读全文
posted @ 2012-03-21 19:55 westfly 阅读(638) 评论(0) 推荐(0) 编辑
摘要: 柔性数组是C99的扩展,简而言之就是一个在struct结构里的标识占位符(不占结构struct的空间)。声明typedef struct zero_array{ size_t len; void * array[0];}zero_array_t;大小可以用sizeof 看看其大小printf("%d\n",sizeof(zero_array_t));//Debian IA 32 下输出4可以看到其array并没有占用空间。申请空间zero_array_t *ptr = (zero_array_t *)malloc(sizeof(zero_array_t)+sizeof(vo 阅读全文
posted @ 2012-03-20 20:19 westfly 阅读(799) 评论(2) 推荐(0) 编辑
摘要: 今天调试程序,总是遇到segment fault,由于的多线程程序,gdb调试很麻烦,非常不爽,但是Bug还总是在哪里需要解决啊。只得想办法。网上说可以生成core文件,再用gdb调试core,至少可以定位到哪里出错。于是Google。segment fault产生的原因主要是与指针操作相关。《GDB调试core文件样例(如何定位Segment fault) 》详细介绍了相关错误原因View Code 一 造成segment fault,产生core dump的可能原因1.内存访问越界 a) 由于使用错误的下标,导致数组访问越界 b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字 阅读全文
posted @ 2012-03-20 14:38 westfly 阅读(669) 评论(0) 推荐(1) 编辑
摘要: 相对《简单多线程拷贝单文件示例》扩展了任务队列。主要核心在于将单个大文件分成多份(比如100),形成一个任务,并将任务用链表链接起来,形成一个队列(FIFO)或者栈(无非是顺序不同)。相对第一版来说,thread_block的定义发生了些变化,但用户接口未变。typedef struct thread_block{ int infd; ///<*文件句柄 int outfd; size_t start_position;///<*文件的写入起始位置 size_t block_size; ///<* 文件写入的终止位置[first ,last)开区间 /... 阅读全文
posted @ 2012-03-19 09:36 westfly 阅读(615) 评论(0) 推荐(0) 编辑
摘要: 整理以前的代码,发现这个还有个尾巴没有做。于是花了点时间捡起来。代码如下View Code /* * ===================================================================================== * * Filename: copy.c * * Description: 多线程拷贝文件 * * Version: 1.0 * Created: 03/17/2012 04:53:09 AM * Revision: none * Compile... 阅读全文
posted @ 2012-03-18 16:43 westfly 阅读(1303) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1282水题。跟在创新工场遇到的一个问题类似,整数串判断回文。由于题目所称整数的限制,数组的大小不是太好取。参考网上的经验值。#include <stdio.h>#define MAX_ARRAY 100int ReserveNum(int a){ int ret = 0; while(a) { ret = ret *10 + a%10; a /=10; } return ret;}int main(){ int first,last; ... 阅读全文
posted @ 2012-03-17 17:40 westfly 阅读(300) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 25 下一页