小编Joe*_*ont的帖子

附加到内存映射文件

我不断附加股票报价(整数,多头,双打等).我用mmap将此文件映射到内存中.

将新附加数据作为内存映射的一部分提供的最有效方法是什么?

我知道我可以再次打开文件(新文件描述符),然后mmap它来获取新数据,但这似乎是低效的.我建议的另一种方法是以1mb块预先分配文件,写入特定位置直到到达结尾然后将文件ftruncate为+ 1mb.

还有其他方法吗?

Doest Boost对此有何帮助?

c++ boost mmap

22
推荐指数
2
解决办法
1万
查看次数

GTK或Qt的图表小部件

是否有GTK或Qt的小部件可以让我画这样的股票图表?

http://smartquant.com/openquant/openquant_chart.jpg
(复制和网址粘贴由于盗链限制)

谢谢,乔尔

gtk charts qt stocks

14
推荐指数
2
解决办法
2万
查看次数

使用Clang 4.1(LLVM 3.1svn)退出测试时崩溃

考虑这个简单的程序:

#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)

c++ macos boost clang segmentation-fault

9
推荐指数
2
解决办法
2111
查看次数

标签 统计

boost ×2

c++ ×2

charts ×1

clang ×1

gtk ×1

macos ×1

mmap ×1

qt ×1

segmentation-fault ×1

stocks ×1