草庐IT

scroll-blocking

全部标签

c++ - OpenSSL:AES CCM 256 位大文件加密 block :这可能吗?

我正在执行一项使用AESCCM模式(256位key长度)加密大文件的任务。其他用于加密的参数是:标签大小:8字节iv大小:12字节因为我们已经在使用OpenSSL1.0.1c,所以我也想用它来完成这项任务。文件的大小事先并不知道,它们可能非常大。这就是为什么我想按block读取它们并使用EVP_EncryptUpdate单独加密每个block,直到文件大小。不幸的是,仅当整个文件一次加密时,加密对我有效。如果我尝试多次调用它,我会从EVP_EncryptUpdate或奇怪的崩溃中得到错误。我使用gcc4.7.2在Windows7和UbuntuLinux上测试了加密。我找不到有关Open

c++ - 具有 "blocking"pop 的单一生产者单一消费者队列

我正在寻找具有“阻塞”流行音乐的单一生产者单一消费者队列。升压spsc_queue几乎没问题,除了一种方法:boolpop(T&ret);Popsoneobjectfromringbuffer.该方法是“非阻塞的”,如果没有数据则立即返回。我希望此方法“阻塞”并等待一些数据到达。我应该使用哪些集合?upd至少有人可以建议任何带有阻塞pop的c++队列吗? 最佳答案 并发队列很少提供弹出阻塞接口(interface):在许多情况下,用户应该执行阻塞逻辑,避免队列实现的不必要开销。也就是说,您可以在queue::pop周围添加一个包装器

c++ - 将#include 包装在命名空间 block 中是个好主意吗?

我有一个C头文件,它被编写为编译为C和C++(它只使用公共(public)子集中的特性,并使用extern"C"东西)。问题是,该header在全局命名空间中声明了内容。出于通常的原因,我宁愿避免这样做。我考虑过这样做:namespacefoo{#include}这样做是个好主意吗?我是否有不包括编辑头文件的替代方案? 最佳答案 不,这是个坏主意。对于C++声明,可能会引入链接器错误,因为标识符在错误的命名空间中声明。使用C声明,它可以工作,但它可能会隐藏全局命名空间中标识符之间的冲突(我猜你试图避免),直到链接时间;它不会真的将标

c++ - "warning: operation of ... may be undefined"用于三元运算——不是 if/else block

这个问题在这里已经有了答案:Undefinedbehaviorandsequencepoints(5个答案)关闭6年前。这是我的代码:intmain(){staticinttest=0;constintanotherInt=1;test=anotherInt>test?test++:0;if(anotherInt>test)test++;elsetest=0;return0;}这是我构建它时产生的警告:../main.cpp:15:40:warning:operationon‘test’maybeundefined[-Wsequence-point]test=anotherInt>te

c++ - 默认在开关 block 的开头

在遍历解析器代码时,例如clang编译器的clang/Parse目录下的Parser.cppswitch(Close){default:break;casetok::r_paren:LHSName="(";DID=diag::err_expected_rparen;break;casetok::r_brace:LHSName="{";DID=diag::err_expected_rbrace;break;casetok::r_square:LHSName="[";DID=diag::err_expected_rsquare;break;casetok::greater:LHSName=

c++ - Doxygen `@code` block 中的链接有时会丢失

我注意到当默认构造函数不带参数时,Doxygen可以链接来自实例的成员函数调用,但当构造函数带参数时无法链接它们。这是为什么?是否有在@code/@endcodeblock中手动添加链接的解决方法?在下面的例子中:t.foo()-foo()已链接u.foo()-foo()未链接./**@filedoxy.cpp*//**structT*/structT{/**foo*/voidfoo(){}};/**structU*/structU{inta;/** 最佳答案 我认为这是Doxygen中已知问题的征兆。来自http://www.do

c# - block 分配

是预分配(例如)100KB内存(在堆中)然后只继续使用60KB更好,还是根据需要分配每个字节更好?我的问题来自阅读此博客:http://deplinenoise.wordpress.com/2012/10/20/toollibrary-memory-management-youre-doing-it-wrong/ 最佳答案 这实际上取决于应用程序的复杂内存细节。然而,这家伙的基本观点是绝对准确的——预分配和内存区域非常高效。new和delete是最通用的工具,如果您有更具体的问题,您可以找到更有效的解决方案。固定大小的对象池是另一个

c++ - 如何使用代码 :Blocks 进行分析

我正在为Windows制作一个wxWidget应用程序。我在Windows7中使用code:blocks13.12和MinGW4.8。我在settings->compiler中启用了-pg选项,编译后尝试打开plugins->codeprofiler结果是这样的:gprof:file`C:\Users\josele\Documents\C_C++\DLL\SQLManager\bin\Release\SQLManager.exe'hasnosymbols基本上我不知道分析在code:block中是如何工作的,而且我对分析的一般知识也大大减少了。我正在寻找解决这个问题或教程:分析如何在代

c++ - 使用来自 SOCI 的匿名 PL SQL block 调用 PLsql 脚本

我正在寻找一种通过SOCI调用匿名PLsqlblock的方法。数据传输通过先前在脚本中创建为变量的refcursor进行:variablercrefcursordeclarev_obj_idnumber(4,0):=1;v_obj_defvarchar(30);v_obj_typenumber:=1;beginopen:rcforselectv_obj_id,OBJ_DEF_IDfromMY_OBJECT_DEFSwhereOBJECT_TYPE=v_obj_type;end;我需要从我的应用程序中读取refcursor以检索数据。我试图通过soci::statement执行上述操作,

c++ - 将音乐作为 SDL_Mixer block 运行

目前SDL_Mixer有两种声音资源:chunk和music。除了API和支持的格式限制外,是否有任何理由不将音乐作为SDL_Chunk和channel加载和播放?(内存、速度等) 最佳答案 API才是真正的问题。“音乐”API旨在处理流式压缩音乐,而“声音”API则不是。话又说回来,如果你设法让它在你的应用程序中工作,那么它就可以工作。 关于c++-将音乐作为SDL_Mixerblock运行,我们在StackOverflow上找到一个类似的问题: https