最近做一个视频存储服务器。通信模块有几个选择:自己封装IOCP,libevent boost::aio ,ACE。
最终还是选择了大名鼎鼎的ACE。结果就是噩梦从此开始了。
ACE主要分为3层:OS适配层,wrapper facde层,框架层。
OS适配层。封装了藏用的操作系统函数。
wrapper facede层,封装了很多类,使用起来更加方便。
框架层。集成了各个wrpper facade类,提供半完成品应用。
今天就说说使用OS适配层的函数遇到的坑吧。哥哥使用ACE_OS::fopen 打开文件,然后就各种崩溃 各种非法访问内存。检测File指针不为NULL啊。各种纠结各种无助。最后把所有ACE_OS::fopen改为fopen_s,呵呵。正常了。。。操蛋啊。。。。
时间: 2024-12-25 00:52:36