我不断附加股票报价(整数,多头,双打等).我用mmap将此文件映射到内存中.
将新附加数据作为内存映射的一部分提供的最有效方法是什么?
我知道我可以再次打开文件(新文件描述符),然后mmap它来获取新数据,但这似乎是低效的.我建议的另一种方法是以1mb块预先分配文件,写入特定位置直到到达结尾然后将文件ftruncate为+ 1mb.
还有其他方法吗?
Doest Boost对此有何帮助?
是否有GTK或Qt的小部件可以让我画这样的股票图表?
http://smartquant.com/openquant/openquant_chart.jpg
(复制和网址粘贴由于盗链限制)
谢谢,乔尔
考虑这个简单的程序:
#include <string>
#include <iostream>
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MODULE "MyTest"
#include <boost/test/unit_test.hpp>
using namespace std;
template<char* S>
void Test()
{
BOOST_REQUIRE("Boom!" != string(S));
}
char bang[] = "Bang!";
BOOST_AUTO_TEST_CASE(Boom)
{
char boom[] = "Boom!";
Test<bang>();
}
Run Code Online (Sandbox Code Playgroud)
我在Mac OS X v10.8.2(Mountain Lion)上安装了XCode 4.5.
例如,在使用GCC编译时,该程序可以正常工作
gcc test.cpp -lboost_unit_test_framework-mt -lstdc++
Run Code Online (Sandbox Code Playgroud)
但是在使用Apple Clang 4.1(标签/ Apple/clang-421.11.65)编译时崩溃(基于LLVM 3.1svn)
clang -std=c++11 -stdlib=libc++ -lc++ test.cpp -lboost_unit_test_framework-mt
Run Code Online (Sandbox Code Playgroud)
我使用的是Boost 1.51.0,使用BREW安装.使用Clang重新编译Boost没有帮助.
有这个谜的解决方案吗?
./a.out
Running 1 test case...
*** No errors detected
Segmentation fault: 11
gdb …Run Code Online (Sandbox Code Playgroud)