Articles of c + +

Xerces C ++ – 加载,读取和保存替代品?

我正在寻找一个教程来加载一个XML文件,阅读它,改变它,最后用C ++保存。 我正在使用Linux Ubuntu并尝试使用Xerces。 用Google和很多时间,我只能加载一个XML文件: #include <xercesc/parsers/XercesDOMParser.hpp> #include <xercesc/dom/DOM.hpp> #include <xercesc/sax/HandlerBase.hpp> #include <xercesc/util/XMLString.hpp> #include <xercesc/util/PlatformUtils.hpp> #include <iostream> using namespace std; using namespace xercesc; int main (int argc, char* args[]) { try { XMLPlatformUtils::Initialize(); } catch (const XMLException& toCatch) { char* message = XMLString::transcode(toCatch.getMessage()); cout << "Error during initialization! :\n" << message << "\n"; XMLString::release(&message); return […]

如何更新命令行输出?

在Linux中,虽然stdout到命令行,我想更新特定区域,如apt-get输出: 54% [Waiting for headers] [Waiting for headers] 211 kB/s 3s 百分比 , kB /秒和秒将更新每秒。 如果我们使用printf那么我们会得到多行输出。 我试过下面的printf : printf("\e[1;1H\e[2J"); 但它清除所有的输出。 我的问题是如何更新特定区域并保持其他人稳定?

我怎样才能减less最小的Linux进程的内存占用量

考虑下面的C程序,'pause.c': void main() { pause(); } 使用这个命令“gcc -Os pause.c -o pause”在x64 Linux 3.0.0-16-generic上编译这个文件会产生大小为〜8KB的可执行文件。 当我运行这个可执行文件并使用“pmap -d PID”检查其精确的内存占用情况时,它告诉我分配给进程的私有内存是192KB(通常在128KB到192KB之间,在不同的系统上有所不同)。 使用valgrind和massif检查进程未能检测到任何内存分配事件。 我对192KB的数字是否准确持怀疑态度,但是我发现,启动“暂停”进程的5个实例消耗了大约1MB的系统内存。 我无法解释这个记忆的起源,任何人都可以提供一些关于这个记忆被分配的原因以及任何可能减less它的潜在行为,欢呼声。

向量<struct>上的segfault

我创build了一个结构来保存一些数据,然后声明一个向量来保存该结构。 但是当我做一个push_back我得到该死的段错误,我不知道为什么! 我的结构被定义为: typedef struct Group { int codigo; string name; int deleted; int printers; int subpage; /*included this when it started segfaulting*/ Group(){ name.reserve(MAX_PRODUCT_LONG_NAME); } ~Group(){ name.clear(); } Group(const Group &b) { codigo = b.codigo; name = b.name; deleted = b.deleted; printers = b.printers; subpage = b.subpage; } /*end of new stuff*/ }; 最初,该结构没有复制,构造函数或析构函数。 […]

在Linux上,为什么析构函数在C ++的全局variables的共享实例上运行两次?

在Linux上,我从一个定义了全局variables的静态库中生成了一些C ++代码。 这个全局variables的一个实例在引用它的符号的两个共享库之间共享。 当进程closures并且运行静态终止阶段时,我看到这个共享实例上的析构函数运行了两次! 据推测,每个图书馆每个卸载。 这个问题与我最近在这里看到的另一个问题密切相关: 相关的问题 。 这听起来像是一样的行为,但没有讨论为什么会发生。 有人知道背后的理论解释吗?

如何为QtWebKit安装一个插件

我正在运行一个Qt 4.5商业快照,并希望在我的QWebView使用我下载的一个插件(这是一个.so文件)。 有一个特定的位置,我需要放置这个文件? 我可以用QWebPluginFactory抓取它吗?

Linux下C ++audio捕获API的最佳实践?

我需要从麦克风function创build一个简单的录音C + +应用程序。 我不能说有没有足够的audioAPI来做到这一点! Pulse,ALSA,/ dev / dsp,OpenAL等。我的问题是目前的“最佳实践”API是什么? 脉冲似乎支持大多数现代发行,但似乎几乎没有文件。 OpenAL是否支持不同的发行版,还是太模糊了? 我错过了吗? 有没有一个简单的答案?

我怎样才能获得多个调用sem_open在C中工作?

在C语言的基础上,我正在经历很多困难。 我的申请过程是这样的: 申请开始 申请分入儿童/家长 每个进程使用具有通用名称的sem_open来打开信号量。 如果我在分叉之前创build信号量,它工作正常。 但是,要求阻止我这样做。 当我第二次尝试调用sem_open时,出现“Permission Denied”错误(通过errno )。 有没有可能以任何方式做到这一点? 还是有什么办法在一个进程中打开信号量,并使用共享内存机制与subprocess共享?

Qt的最好的方式来显示非常大的富文本?

我需要显示非常大的日志,使用HTML标记标记不同types的数据。 使用QTextEdit和QTextBrowser真的会减慢应用程序,特别是在追加操作。 我真的想保持QTextEdit界面和能力。 我见过一些实现了自己的TextEdit风格的人来提高性能,但是如果有人使用“Qt”工具解决了这个问题的话,我会徘徊不前。 我想过使用Model / View框架来根据需要加载数据,但这不像我想的那样。 也许inheritanceQTextEdit并覆盖一些插槽滚动… 如果有人遇到这个问题,并解决它,我将不胜感激一些提示。 谢谢。

安装旧版本的gcc

我想在我的Ubuntu 64位系统上安装gcc 4.1.2,目前这个系统有gcc 4.4。 我想继续使用当前的gcc,但也想添加gcc 4.1.2。 任何简单的方法来做到这一点,即在我的系统上安装gcc 4.1.2?