进程间通信知识了解不少,今天第一次正式使用,就出问题了。
看看共享内存的原理,操作系统把一块公共的内存区域,映射到进程内存空间中,但映射的内存地址并不能保证映射后的地址一致性(其实一致的可能性很小,基本没有成功过),而此处array执行的地址为创建共享内存进程中正确的数组地址,在新的进程中就不对了。
因此在共享内存中,需要慎重使用指针变量。对于本文中的问题修改很简单,删除int *array,每次使用结构的地址跳过这些额外信息即可,可通过下面的宏函数得到数据域的指针。
文章来源:
http://blog.csdn.net/volant_hoo/archive/2009/05/11/4169093.aspx
最近看CSDN,又谈到一道面试题,大致是“不使用比较运算符和库函数比较两个整数的大小”。这种题看似简单,实则深藏玄机,考得不只是技巧还有很多基础知识。
文章来源:
http://blog.csdn.net/volant_hoo/archive/2009/05/11/4169108.aspx
奥运会结束了,工作也要开始忙起来了。从开幕到闭幕,看了两个星期的比赛,有高兴,有惊喜,有震撼,也有失望。现在被比赛牵动的心,又得趋于平淡。回归现实,还是工作的劳累和生活的奔波。
前天查了系分考试的成绩,论文没有过。成绩在意料之间,一篇字数刚好、内容跑题的论文,又怎么能过呢。失败也是经验,感觉以下几点:
1、系分没有想象中那么难考。好好准备一下,争取基础知识和案例成绩再提高一些。
2、自己的文字组织能力有待提高。很长时间没有动笔写字了,两个小时完成2000-3000字的论文和300-500的摘要,是个不小的挑战。考试的时候,不敢多做思考,就一直写呀写的,结束前一分钟刚好码字到2000字那一行,惭愧啊!
3、写论文要学会说废话。一直以来,自己都崇尚以“简”为美,经常对外文书籍中动辄“洋洋大论”的行为嗤之以鼻,直到考试的时候,才发现说废话也是一种好习惯。
4、把规划细化也是一种好的方式。长期以来,养成的习惯都是先写好主干内容,然后再逐步扩充,呵呵,像XP一样,错了可以改,少了可以加。唉,电子版可以如此,纸质版又能如何,羡慕机试了。
5、需要一块手表。考场上没有钟,手机不能用,有时间规划也不能落到实处。
换了工作,又换了房子,需要时间去适应新的环境。下半年的系分不打算考了,来年再度奋战。阿门,祈祷一下,希望能够顺利通过。
google开源了c++单元测试框架,真让人兴奋。安装的过程比较简单,在eclipse+mingw+cygwin下很easy就搞定了。使用也很容易,按照sample不用看文档也能很快上手。过程就不多少了,记点东西备忘。
断言:
ASSERT_TRUE(condition); EXPECT_TRUE(condition); condition为真
ASSERT_FALSE(condition); EXPECT_FALSE(condition); condition为假
ASSERT_EQ(expected, actual); EXPECT_EQ(expected, actual); expected == actual
ASSERT_NE(val1, val2); EXPECT_NE(val1, val2); val1 != val2
ASSERT_LT(val1, val2); EXPECT_LT(val1, val2); val1 < val2
ASSERT_LE(val1, val2); EXPECT_LE(val1, val2); val1 <= val2
ASSERT_GT(val1, val2); EXPECT_GT(val1, val2); val1 > val2
ASSERT_GE(val1, val2); EXPECT_GE(val1, val2); val1 >= val2
ASSERT_STREQ(expected_str, actual_str); EXPECT_STREQ(expected_str, actual_str); 两个C字符串有相同的内容
ASSERT_STRNE(str1, str2); EXPECT_STRNE(str1, str2); 两个C字符串有不同的内容
ASSERT_STRCASEEQ(expected_str, actual_str); EXPECT_STRCASEEQ(expected_str, actual_str); 两个C字符串有相同的内容,忽略大小写
ASSERT_STRCASENE(str1, str2); EXPECT_STRCASENE(str1, str2); 两个C字符串有不同的内容,忽略大小写
头文件:
#include <gtest/gtest.h>
main:
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
库:
-lgtest
很久没有接触snort了,由于工作的原因,和它打了两年多的交道,虽然有不少的认识,但缺少深入的研究。闲来时翻的几篇手册,原来放在163上,偷懒放个总的上来。
文章来源:
http://blog.csdn.net/volant_hoo/archive/2008/07/07/2622733.aspx
做了几年C/C++开发,一直想要把单元测试加上,因为工作安排,做了一小段时间的java,更坚定了搭建c++单元测试环境的想法,但不得不说cppunit的配置实在是有些繁琐,MinGW的安装还好说,cygwin安装实在是太慢,可怜的网速让我数次终止了它的安装,幸运的是在公司的电脑上居然发现了cygwin的安装包,于是就开始了我的cppunit的测试旅程。
文章来源:
http://blog.csdn.net/volant_hoo/archive/2008/06/02/2502339.aspx