草庐IT

boost-pool

全部标签

C++ Boost 为两个不同的进程创建共享内存

因此,我尝试在C++程序中创建一个共享内存段,这样我就可以在其中写入一个简单的字符,然后从另一个C++程序中读取该字符。我已经下载了Boost库,因为我看到它简化了这个过程。基本上我有两个问题:首先,创建后如何写入它?那我应该在第二个程序中写些什么来识别段并读取其中的信息?这就是我到目前为止所得到的。不是很多,但我对这个(第一个程序)还是很陌生:#include"stdafx.h"#include#includeintmain(intargc,char*argv[]){usingnamespaceboost::interprocess;windows_shared_memoryshar

Windows 内核 - 是否有类似 ExGetPoolsForTag(pool_tag) 的东西?

这是关于Windows内核驱动程序和内存管理的。我真的很好奇是否有一个函数(或者任何不方便的方法)来获取(或迭代)特定池标签的所有内存分配?这些是使用ExAllocatePoolWithTag(type,size,tag)...有使用特定池标签的内核函数,现在我需要找到使用该标签进行的所有分配?我比较确定这是不可能的(出于安全原因),但仍需要对此进行确认。干杯,将更新:(关于下面的WinDbg评论)kd>!poolfindObFlScanninglargepoolallocationtableforTag:ObFl(fffffa8002290000:fffffa8002350000)S

windows - 为什么 python 中的 pool.map 不起作用

importmultiprocessingasmuldeff(x):returnx**2pool=mul.Pool(5)rel=pool.map(f,[1,2,3,4,5,6,7,8,9,10])print(rel)当我运行上面的程序时,应用程序卡在一个循环中,无法停止。我在Windows中使用python3.5,有什么问题吗?这是我在屏幕上看到的:我是财务数据分析的新手;我正试图找到一种方法来通过并行计算解决大数据问题。 最佳答案 它不起作用,因为您是在shell中键入命令;尝试将代码保存在文件中并直接运行。不要忘记正确复制代码,

c++ - 为 boost::locale::conv 中的函数获取用户的代码页名称

手头的任务我在Windows上从UTF-8编码的XML解析文件名。我需要将该文件名传递给一个我无法更改的函数。在内部它使用_fsopen()不支持Unicode字符串。当前方法我目前的方法是将文件名转换为用户的字符集,希望文件名可以用该编码表示。然后我使用boost::locale::conv::from_utf()从UTF-8转换,我使用boost::locale::util::get_system_locale()获取当前语言环境的名称。生活美好吗?我在德语系统上使用代码页Windows-1252因此get_system_locale()正确地产生了de_DE.windows-12

c++ - 在 Linux 上 boost windows_shared_memory

您好,我需要在Linux上构建一个项目,但它使用“boost/interprocess/windows_shared_memory.hpp”有什么方法可以在linux上运行它,或者我必须重写这段代码?谢谢 最佳答案 我认为你只需要使用#include而不是boost/interprocess/windows_shared_memory.hpp。这将处理Windows和Linux。 关于c++-在Linux上boostwindows_shared_memory,我们在StackOverfl

c++ - 我可以在 Windows 操作系统上使用本地套接字吗? - C++/boost

我可以在Windows操作系统上创建boost::asio::local::stream_protocol::socket吗?我知道它应该是一个“UNIX”套接字,但Windows不支持这个吗? 最佳答案 如果我理解正确,boost::asio::local::stream_protocol是特定于POSIX的。Windows本身不是符合POSIX的环境,但是有适用于Windows的POSIX环境,即Cygwin.但是如果不分发环境,您将无法分发这些应用程序。在某些情况下,尤其是当Unix是您的主要目标平台,并且您出于慷慨提供Win

函数内的Python多处理: calling pool.映射

我正在尝试使用mutltiprocessing包在一个函数中使用多个CPU。当我在函数外部运行玩具示例时,它会在四分之一秒内运行,没有任何问题(见下文)。frommultiprocessingimportPoolimporttimestart=time.clock()deff(x):returnx*xif__name__=='__main__':withPool(processes=7)aspool:result=pool.map(f,range(1000))print(time.clock()-start)但是,当我将相同的代码改编成一个函数时(见下文),它会打印True以指示__n

c++ - Boost 是否支持 Windows EnterCriticalSection API?

我知道Boost支持互斥锁和lock_guard,可用于实现临界区。但是Windows有一个用于关键部分的特殊API(参见EnterCriticalSection和LeaveCriticalSection),它比互斥锁快很多(对于很少竞争的短代码部分)。因此我的问题-在Boost中可以利用这个API,并回退到其他平台上基于自旋锁/互斥/futex的实现吗? 最佳答案 简单的答案是否定的。这里有一些相关背景fromanoldmailinglistthread:BTW.Iamagreethatmutexismoreuniversalso

c++ - Boost 1.66.0 : could not find boost libraries :boost_system, boost_filesystem、boost_thread、boost_date_time

我的配置是:操作系统:Windows10x64boost:1.66.0CMake:3.10VisualStudio:2017我正在以这种方式编译boost:bootstrap.\b2--build-dir=buildtoolset=msvcaddress-model=64--build-type=completestage运行CMake时出现此错误:couldnotfindboostlibraries:boost_systemboost_filesystemboost_threadboost_localeboost_date_time我搜索这些库,它们位于stage文件夹中。我尝试了B

c++ - boost directory_iterator是否在Windows上按字母顺序访问文件和文件夹

我有一个文件夹fold,其中包含子文件夹sub1、sub2...subX,以及独特的里面的文件。假设我需要找到文件X的第一次出现。我所需要的只是获得一个按顺序通过subX的fold迭代器,或者获得一个文件夹列表并自己对其进行排序。我运行了几次,我注意到迭代器确实是按字母顺序排列的,但是,我在文档中找不到它的具体说明,所以这可能是巧合。但是我看到了:TheLinuxlistingisn'tsorted.That'sbecausetheorderingofdirectoryiterationisunspecified.Orderingdependsontheunderlyingoperat