上一页 1 ··· 56 57 58 59 60 61 62 63 64 ··· 71 下一页
摘要: 转自:http://blogold.chinaunix.net/u/22935/showart_340462.html一、什么是条件变量与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检测是在互斥锁的保护下进行的。如果一个条件为假,一个线程自动阻塞,并释放等待状态改变 阅读全文
posted @ 2011-05-01 15:25 hnrainll 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/feisky/archive/2010/03/08/1680950.html与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检测是在互斥锁的保护下进行的。如果一个条件为假,一个线程自动阻塞,并释放等待状态改变的互斥锁 阅读全文
posted @ 2011-05-01 13:50 hnrainll 阅读(586) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>#include<pthread.h>#include<stdlib.h>#include<unistd.h>#include<signal.h>void *test_program(void *arg);int main(int argc,char *argv[]){ int i; pthread_t thread_id; void *status; if(pthread_create(&thread_id,NULL,test_program,NULL)>0) { fprintf(st 阅读全文
posted @ 2011-05-01 13:34 hnrainll 阅读(323) 评论(0) 推荐(0) 编辑
摘要: /* ************************************************************************ * Filename: n_trylock.c * Description: * Version: 1.0 * Created: 2011骞?4鏈?2鏃?20鏃?9鍒?2绉? * Revision: none * Compiler: gcc * Author: wenhao (wh), hnrain1004@gmail.com * Company: sunplusapp * *********************************** 阅读全文
posted @ 2011-05-01 13:31 hnrainll 阅读(4779) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.csdn.net/rsp19801226/archive/2008/10/18/3095157.aspx解析C/C++语言中的sizeof一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。二、sizeof的使用方法 1、用于数据类型 sizeof使用形式:sizeof(type) 数据类型必须用括号括住。如sizeof(int)。 2、用于变量 sizeof使用形式:siz 阅读全文
posted @ 2011-05-01 12:38 hnrainll 阅读(1957) 评论(1) 推荐(0) 编辑
摘要: 这是一个很简单的程序void main(){int i=8;printf("%d,%d,%d,%d\n", ++i, --i, i++, i--);}在这里我使用了VS.NET2005编译的结果是:8,8,7,8用TC2.0编译的结果是:8,7,7,8VC6.0我没有安装,所以没有试过,也没办法分析。这里我们可以看到,由不同的编译器产生了不同结果,可见这个问题是依赖编译器的理解和实现的。换句话说,对于i++和++i的处理本来就是非常具有歧义的,当然在自己应用中我相信也不会有任何程序员写出这样歧义的代码。但是作为一个问题,我们有必要分析一下不同编译器究竟如何理解i++和++i 阅读全文
posted @ 2011-05-01 12:19 hnrainll 阅读(1356) 评论(4) 推荐(0) 编辑
摘要: #include <stdio.h>#include <stdlib.h>void foo(void){ printf("into the foo function\n"); return;//结束子函数调用,返回主函数 printf("out the foo function\n");}int main(){ foo(); printf("Hello world!\n"); return 0;}运行结果: 阅读全文
posted @ 2011-05-01 08:22 hnrainll 阅读(1769) 评论(0) 推荐(0) 编辑
摘要: return是C++预定义的语句,它提供了种植函数执行的一种放大。当return语句提供了一个值时,这个值就成为函数的返回值.说到return,有必要提及主函数的定义,下面是从网络上找到的资料,好好消化吧,对了解主函数中返回值的理解有很大的帮助.很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ) { /* ... */ } is not and never has be 阅读全文
posted @ 2011-05-01 08:17 hnrainll 阅读(895) 评论(0) 推荐(0) 编辑
摘要: main函数的返回值用于说明程序的退出状态。如果返回0,则代表程序正常退出;返回其它数字的含义则由系统决定。通常,返回非零代表程序异常退出。下面我们在winxp环境下做一个小实验。首先编译下面的程序: int main( void ) { return 0; }然后打开附件里的“命令提示符”,在命令行里运行刚才编译好的可执行文件,然后输入“echo%ERRORLEVEL%”,回车.就可以看到程序的返回值为0。假设刚才编译好的文件是a.exe,如果输入“a && dir”,则会列出当前目录下的文件夹和文件。但是如果改成“return -1”,或者别的非0值,重新编译后输入“a & 阅读全文
posted @ 2011-05-01 07:54 hnrainll 阅读(5144) 评论(0) 推荐(0) 编辑
摘要: uCOS-II在ARM上的移植 详细方法:http://blog.eccn.com/space.php?uid=170730&do=blog&id=4847 移植工作介绍实际上uC/OS-II可以简单地看作是一个多任务调度器,在这个任务调度器上完善地添加了与多任务操作系统相关的一些系统服务,如信号量 阅读全文
posted @ 2011-04-30 20:31 hnrainll 阅读(1794) 评论(0) 推荐(0) 编辑
摘要: 源地址:http://blog.eccn.com/space.php?uid=170730&do=blog&id=4847 UCOS-II移植ARM的笔记(转贴) UCOS-II的移植需要提供2,3个文件分别介绍如下: 一:OS_CPU.H 1 与编译器有关的数据类型 经典的全局变量定义,可以套用, 阅读全文
posted @ 2011-04-30 20:30 hnrainll 阅读(6330) 评论(2) 推荐(0) 编辑
摘要: 一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放。2、堆区(heap) — 在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—编译器编译时即分配内存。全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后由 阅读全文
posted @ 2011-04-30 20:24 hnrainll 阅读(754) 评论(0) 推荐(0) 编辑
摘要: #include <stdio.h>#include <malloc.h>voidprint(char*,int);main(){char*s1="abcde";char*s2="abcde";char s3[] ="abcd";long int*s4[100];char*s5="abcde";int a=5;int b=6;//a,b在栈上,&a>&b 地址反向增长printf("variables address in main function:\n\s 阅读全文
posted @ 2011-04-30 20:17 hnrainll 阅读(885) 评论(0) 推荐(0) 编辑
摘要: #include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX 100char bak_str[MAX];void Del_Blank(char *p){ int i = 0; int j = 0; int flag = 0; while(*(p + i) != '\0') { while ( *(p+i) == ' ' ) { i++; flag = 1; } if(1 == flag) { *(bak_str + j) = ' '; j 阅读全文
posted @ 2011-04-30 20:05 hnrainll 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 在Linux下使用ipmsg(飞鸽传书)ipmsg是个不错的局域网通讯软件,非常小巧,无需服务器端,使用非常方便。在Linux下使用需要自行编译。在官方网站下载源码:http://www.ipmsg.org/index.html.en(http://www.ipmsg.org/archive/g2ipmsg-0.9.5.tar.gz)解压后需要修改源码以支持中文:文件:src/codeset.c原文:#define IPMSG_PROTO_CODE "CP932"改成:#define IPMSG_PROTO_CODE "GBK"然后,编译之,为了方便在任 阅读全文
posted @ 2011-04-30 00:36 hnrainll 阅读(5222) 评论(0) 推荐(1) 编辑
摘要: http://code.google.com/p/qipmsg/downloads/listdeb,rpm包都有!官网:http://ipmsg.org/ 阅读全文
posted @ 2011-04-30 00:27 hnrainll 阅读(693) 评论(0) 推荐(0) 编辑
摘要: /***********************************************************本人(ypxing)根据下面的协议,C语言写的ipmsg(聊天,文件/文件夹传输)*请参见:http://blog.chinaunix.net/u1/35100/showart_689330.html**********************************************************/最近看到一些朋友在编写网络程序是遇到一些问题,故把以前做IPMSG时翻译的文档贴过来,希望对网络编程新手有所帮助,在寻找编程项目的同学们也可参照此文档写出自己的I 阅读全文
posted @ 2011-04-30 00:15 hnrainll 阅读(490) 评论(0) 推荐(0) 编辑
摘要: /* ************************************************************************ * Filename: link.c * Description: * Version: 1.0 * Created: 2011骞?4鏈?9鏃?17鏃?2鍒?3绉? * Revision: none * Compiler: gcc * Author: wen hao (WH), hnrain1004@gmail.com * Company: sunplusapp * *************************************** 阅读全文
posted @ 2011-04-29 18:17 hnrainll 阅读(2191) 评论(0) 推荐(0) 编辑
摘要: 已知strcpy函数的原型是 char *strcpy(char *strDest, const char *strSrc);其中strDest是目的字符串,strSrc是源字符串。(1)不调用C++/C的字符串库函数,请编写函数strcpy char *strcpy(char *strDest, const char *strSrc);{ assert((strDest!=NULL) && (strSrc !=NULL)); // 2分 char *address = strDest; // 2分 while( (*strDest++ = * strSrc++) != ‘\0 阅读全文
posted @ 2011-04-29 15:55 hnrainll 阅读(8462) 评论(0) 推荐(2) 编辑
摘要: 原地址:http://www.cnblogs.com/tuyile006/archive/2007/06/07/774734.html本章首先引入最优化的概念,然后介绍一种直观的问题求解方法:贪婪算法。最后,应用该算法给出货箱装船问题、背包问题、拓扑排序问题、二分覆盖问题、最短路径问题、最小代价生成树等问题的求解方案。1.1 最优化问题 本章及后续章节中的许多例子都是最优化问题( optimization problem),每个最优化问题都包含一组限制条件( c o n s t r a i n t)和一个优化函数( optimization function),符合限制条件的问题求解方案称为可 阅读全文
posted @ 2011-04-29 14:23 hnrainll 阅读(1014) 评论(0) 推荐(0) 编辑
上一页 1 ··· 56 57 58 59 60 61 62 63 64 ··· 71 下一页