摘要: 在linux进行程序调试通常有二种,一是通过printf打印日志,这也是非常方便的;另一种就是gdb调试。进行gdb调试就如在vs中调试一样简单,通过gdb命令完全可以找到程序中任何错误。下面贴出gdb命令,看一眼或者用一次不可能完全记住,需要多加练习,下面放上gdb调试的命令,遇到想不起来方便查看。通过进行gdb调试的时候,在编译的时候需要加上-g,如:gcc -g main.c -o main(注:-g 只是把原代码行数等记录在main里,然后通过索引到源代码中,所以调试的时候源代码必须存在)然后运行:gdbmain在linux,可以通过help命令查看。下面通过一个小程序学习gdb常用命 阅读全文
posted @ 2013-11-15 13:59 蓝夜 阅读(341) 评论(0) 推荐(0) 编辑
摘要: BMP图片大家都知道,可以通过查看BMP图片结构使用纯C就可以打开,编辑,处理,保存图片。非常方便使用。具体BMP结构可以参考:wingdi.h头文件。今天主要在进行删减代码,需要把多余的代码删除,之前写的保存bmp代码就此贴在这里留着以后需要的时候使用:8位BMP图片保存代码: 1 BOOL SaveMatrixToGrayBmp(char* sBMPFile, //name of BMP file 2 BYTE *pMatrix, // pointer to Matrix Bits array 3 int bmpWidth , 4 ... 阅读全文
posted @ 2013-11-15 13:58 蓝夜 阅读(1413) 评论(1) 推荐(0) 编辑
摘要: #include #include #include #include using namespace std;#define NUM 5#define Count 20#define ProCount 40sem_t mutex,full;int amount=0;void *Producer(void *arg){ int i=0; while(i=NUM) { cout<<"已满"<<endl; } else { amount++; cout<<"余下:"... 阅读全文
posted @ 2013-10-22 15:23 蓝夜 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 这是一个非常经典的多线程题目,题目大意如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个有多个缓冲区的缓冲池,生产者将它生产的产品放入一个缓冲区中,消费者可以从缓冲区中取走产品进行消费,所有生产者和消费者都是异步方式运行的,但它们必须保持同步,即不允许消费者到一个空的缓冲区中取产品,也不允许生产者向一个已经装满产品且尚未被取走的缓冲区中投放产品。解决答案: 1 #include 2 #include 3 #include 4 using namespace std; 5 6 #define NUM 10 7 #defin... 阅读全文
posted @ 2013-10-15 22:35 蓝夜 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 现要让四个文件呈如下格式:A:1 2 3 4 1 2....B:2 3 4 1 2 3....C:3 4 1 2 3 4....D:4 1 2 3 4 1....请设计程序。下面举例A,对于B、C、D只是需要把修改一下全局变量n的初始化值即可: 1 #include 2 #include 3 #include 4 using namespace std; 5 6 pthread_mutex_t myloack=PTHREAD_MUTEX_INITIALIZER; 7 pthread_cond_t mycond=PTHREAD_COND_INITIALIZER; 8 int n=0; 9... 阅读全文
posted @ 2013-10-15 21:34 蓝夜 阅读(1736) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 using namespace std; 5 6 pthread_mutex_t myloack=PTHREAD_MUTEX_INITIALIZER; 7 pthread_cond_t mycond=PTHREAD_COND_INITIALIZER; 8 int n=0; 9 void *ThreadFunc(void *arg)10 {11 int num=(int )arg;12 for (int i = 0; i < 10; ++i)13 {14 pthread_mut... 阅读全文
posted @ 2013-10-15 21:27 蓝夜 阅读(2405) 评论(0) 推荐(0) 编辑
摘要: 从题目看,首先想到是使用条件变量来实现,以下是实现代码: 1 #include 2 #include 3 #include 4 using namespace std; 5 6 pthread_mutex_t myloack=PTHREAD_MUTEX_INITIALIZER; 7 pthread_cond_t mycond=PTHREAD_COND_INITIALIZER; 8 int n=0; 9 void *TreadFuncMa(void *arg)10 {11 for (int i = 0; i < 50; ++i)12 {13 pthread... 阅读全文
posted @ 2013-10-15 20:58 蓝夜 阅读(714) 评论(0) 推荐(0) 编辑
摘要: 利用JavaScript动态添加Div的方式有很多,在这次开发中有用到,就搜集了一下比较常用的。一、在一个Div前添加Div 1 2 test View Code 二、动态添加Div,并在Div上添加事件 text View Code 三、动态添加Div,并删除某个Div 1 2 3 4 无标题文档 5 6 24 25 26 safasfdgdag27 aasscc28 29 30 增加31 删除第二个32 33 View Code 四、弹出div 1 ... 阅读全文
posted @ 2013-10-09 13:52 蓝夜 阅读(5785) 评论(0) 推荐(0) 编辑
摘要: 1、下载安装VS2008,然后直接下载opencv的windows的安装版,2、把opencv解压出来,我的路径为:D:\Program\opencv3、配置PATH:电脑--属性--高级系统设置--环境变量--用户变量/系统变量;找到PATH,点编辑,在最后面添加;D:\Program\opencv\build\x86\vc9\bin 4、打开VS2008,配置opencv头文件和lib库目录;工具--选项--项目和解决方案--VC++目录5、每次在新建一个项目后,都需要配置lib库;项目属性--通用配置--连接器--输入DEBUG:opencv_calib3d246d.libopencv_ 阅读全文
posted @ 2013-10-09 11:32 蓝夜 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 《转自》:http://www.w3cplus.com/css/layout-column-three对于我来说,这是一种很少碰到的布局方法,不知道大家有何体会,那么下面我们一起来看这种布局方法的实现过程,同样先来看html代码:this is left sidebar contentthis is main contentthis is right siderbar content这种方法也是借助于负的margin来实现的,首先我们在中间列定好固定值,因为此值是不会在改变的,接着对其进行左浮动;那么关键地主是在左右边栏设置地方,这种方法是将其都进行50%的宽度设置,并加上中负的左边距,此负的 阅读全文
posted @ 2013-09-25 10:02 蓝夜 阅读(240) 评论(0) 推荐(0) 编辑