一个让人感伤又温馨的计算机故事

我是一个硬盘

我是一个硬盘,ST380021A,在一个普普通通的台式机里工作。别人总认为我们是高科技白领,工作又干净又体面,似乎风光得很,也 许他们是因为看到洁白漂亮的机箱才有这样的错觉吧。其实象我们这样的小台式机,工作环境狭迫,里面的灰尘吓得死人。每天生活死水一潭,工作机械重复。跑跑 文字处理看看电影还凑合,真要遇到什么大软件和游戏,上上下下就要忙的团团转,最后还常常要死机。我们这一行技术变化快,差不多每过两三年就要升级换代, 所以人人都很有压力,而且没有安全感。

C++ 不要按值传递数组

有个国外团队检测了 200 多个 C/C++ 开源项目,包括了 Php、Qt 和 Linux 内核等知名项目。于是他们每天分享一个错误案例,并给出相应建议。本篇案例来自 Wolf 源代码。

C++ 生成UUID

C++创建UUID的两种方法:

std::string newGUID()
{
	char buf[50];
	memset(buf, 0, sizeof(buf));
	GUID guid;
	if (S_OK == ::CoCreateGuid(&guid)) {
		sprintf_s(buf, 50, "{%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}"
			, guid.Data1
			, guid.Data2
			, guid.Data3
			, guid.Data4[0], guid.Data4[1]
			, guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5]
			, guid.Data4[6], guid.Data4[7]);
	}
	return std::string(buf);
}

使用BOOST的话:

#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>  
#include <boost/lexical_cast.hpp>

std::string getUUID()
{
	boost::uuids::random_generator rgen;						//随机生成器  
	boost::uuids::uuid a_uuid = rgen();							//生成一个随机的UUID  
	std::string str = boost::lexical_cast<std::string>(a_uuid); //uuid转换到字符串
	return str;
}