Articles of pipe理员

分配更多的内存比使用malloc存在

这个代码片段每次从stdin中读取字母“u”时将分配2Gb,并在读取“a”时初始化所有分配的字符。 #include <iostream> #include <stdlib.h> #include <stdio.h> #include <vector> #define bytes 2147483648 using namespace std; int main() { char input [1]; vector<char *> activate; while(input[0] != 'q') { gets (input); if(input[0] == 'u') { char *m = (char*)malloc(bytes); if(m == NULL) cout << "cant allocate mem" << endl; else cout << "ok" << endl; activate.push_back(m); […]

命令行工具在Windows中recursion地删除具有指定名称的文件夹?

我想删除每个文件夹和子文件夹中的每个“_svn”… 例如 C:\ proyect1 _svn 图片 _svn 旗帜 _svn 纽扣 _svn 然后我运行类似的东西 rm-recurse c:\proyect1 _svn 我应该得到: C:\ proyect1 图片 旗帜 纽扣 理想的事情将是一个小小的独立EXE或类似的东西。 – 感谢格兰特,只要我发布的问题,我看到有关SVN导出命令的SVN文档,但我也想删除Visual Studio创build的_vti_ *文件夹的东西,所以我也将探索解决scheme。

与Windows 7相比,Windows 10性能较差(页面error handling不可伸缩,当线程数大于16时严重的锁争用)

我们设置了两个完全相同的HP Z840工作站,并具有以下规格 2 x Xeon E5-2690 v4 @ 2.60GHz(Turbo Boost ON,HT OFF,总共28个逻辑CPU) 32GB DDR4 2400内存,四通道 并在其上安装了Windows 7 SP1(x64)和Windows 10 Creators Update(x64)。 然后我们运行了一个小内存基准testing(下面的代码,使用VS2015 Update 3,64位体系结构构build),它可以同时从多个线程执行内存分配 – 无填充。 #include <Windows.h> #include <vector> #include <ppl.h> unsigned __int64 ZQueryPerformanceCounter() { unsigned __int64 c; ::QueryPerformanceCounter((LARGE_INTEGER *)&c); return c; } unsigned __int64 ZQueryPerformanceFrequency() { unsigned __int64 c; ::QueryPerformanceFrequency((LARGE_INTEGER *)&c); return c; […]

C#/ Windows:获取本地化的默认名称“新build文件夹”

我正在使用FileSystemWatcher来检查是否在监视的目录中创build新的目录。 如果用户按资源pipe理器创build – >右击 – >新build文件夹,则会创build一个目录“新build文件夹”,用户可以立即进行重命名。 不过,我可以在“新build文件夹”上获得创build的事件,我可以处理。 我的问题是,运行软件不同本地化的Windows机器使得不可能检查“新build文件夹”。 如何获取当前语言中资源pipe理器使用的新文件夹的名称? 谢谢。

Windows服务安装项目 – 以pipe理员身份运行服务

我有一个Windows服务(.net 3.5,visual studio 2008)的安装项目。 Windows服务需要在pipe理员帐户下运行,没有人知道如何让安装项目设置“用户login为”作为安装过程的一部分的Windows服务设置? 目前,我必须手动右键单击该服务,并将其设置为每次更新服务时以pipe理员身份login。 谢谢!

命名pipe道服务器,如何中断或超时等待客户端连接和传入数据

我正在为Windows编写一个简单的命名pipe道服务器,调用Windows API(Java中与JNA,但这是不相关的)。 我想弄清楚如何避免服务器永远等待客户端连接或数据来自客户端。 服务器代码执行以下操作: 1)通过在dwPipeMode参数中调用CreateNamedPipe和PIPE_WAIT来创buildpipe道。 2)调用ConnectNamedPipe ,直到客户端连接才返回。 3)它进入一个循环,它通过调用ReadFile重复读取消息, ReadFile不会返回,直到读取数据为止。对于每个接收到的消息,它通过调用WriteFile将消息发送回客户端。 4)经过许多这样的对话之后,客户端和服务器将从pipe道上断开。 我只是想能够设置在第2步的ConnectNamedPipe和第3步的ReadFile等待超时,我看不到在哪里设置超时。 CreateNamedPipe函数中有nDefaultTimeOut参数,但它并不是真正意义上的; API文档说: 如果WaitNamedPipe函数指定NMPWAIT_USE_DEFAULT_WAIT ,则默认超时值(以毫秒为单位) 。 因此, CreateNamedPipe的nDefaultTimeOut arg听起来像默认的超时,连接到pipe道的客户端将使用它们的操作,并且只有在它们调用WaitNamedPipe函数时。 实际上,在我的testing中,0或1000的值没有什么不同,对ConnectNamedPipe的调用永远不会返回(除非客户端连接)。 我正在寻找的是超时服务器,而不是在ConnectNamedPipe和ReadFile的调用。 作为CreateNamedPipe的文档,对于带有PIPE_WAIT的dwPipeMode参数PIPE_WAIT , Blocking mode is enabled. When the pipe handle is specified in the ReadFile, WriteFile, or ConnectNamedPipe function, the operations are not completed until there is data to read, all data is written, […]

ffmpeg输出pipe道到命名的windowspipe道

这个问题与我以前的问题有关: 将原始帧转换成webm直播stream 我想pipe一个video到ffmpeg并通过另一个pipe道读回来,但是我不能将ffmpeg.exe的输出传送到windows上的一个命名pipe道。 我在C#中定义pipe道: NamedPipeServerStream p_to_ffmpeg; NamedPipeServerStream p_from_ffmpeg; p_to_ffmpeg = new NamedPipeServerStream("to_ffmpeg", PipeDirection.Out, 1, PipeTransmissionMode.Byte); p_from_ffmpeg = new NamedPipeServerStream("from_ffmpeg", PipeDirection.In, 1, PipeTransmissionMode.Byte); 然后我在一个单独的进程中使用以下选项启动ffmpeg.exe : -f rawvideo -vcodec rawvideo -video_size 656×492 -r 10 -pix_fmt rgb24 -i \\.\pipe\to_ffmpeg -c:v libvpx -pass 1 -f webm \\.\pipe\from_ffmpeg ffmpeg.exe拒绝写入具有以下错误的pipe道: File '\\.\pipe\from_ffmpeg' already exists. Overwrite ? [y/N] File '\\.\pipe\from_ffmpeg' already exists. […]

Win32命名pipe道和远程客户端

我可以通过计算机B的计算机A的IP地址访问计算机A上的命名pipe道吗? 如果是这样,我需要做些什么才能做到这一点?

如何在C#中访问WinRM

我想创build一个小的应用程序,可以使用WinRM而不是WMI来收集系统信息(Win32_blablabla)。 我怎么能从C#做到这一点? 主要目标是使用WS-Man(WinRm)而不是DCOM(WMI)。

如何计算任务pipe理器的内存使用情况?

好吧,我正在使用WMI(.net / C#)不断收集有关在机器上运行的特定进程的数据。 我通过Win32_PerfFormattedData_PerfProc_Process类获取数据。 这个类有很多属性,但我们感兴趣的是如下: uint64 PageFileBytes; 值(以字节为单位)该进程在页面文件中使用的值。 分页文件存储进程使用的未包含在其他文件中的内存页面。 分页文件由所有进程共享,分页文件中缺less空间可阻止其他进程分配内存。 uint32 PoolNonpagedBytes; 非分页池中的值,以字节为单位,表示无法写入磁盘的对象的系统内存区域(操作系统使用的物理内存),但只要分配给它们,它们就必须保留在物理内存中。 Win32_PerfFormattedData_PerfOS_Memory中的PoolNonpagedBytes与Win32_PerfFormattedData_PerfProc_Process中的PoolPagedBytes属性的计算方式不同,因此它可能不等于Win32_PerfFormattedData_PerfProc_Process的所有实例的PoolPagedBytes总数。 该属性仅显示最后一个观察值; 这不是一个平均值。 uint32 PoolPagedBytes; 在页面缓冲池中的值,以字节为单位,表示在不使用时可以写入磁盘的对象的系统内存区域(操作系统使用的物理内存)。 Win32_PerfFormattedData_PerfOS_Memory中的PoolNonpagedBytes属性的计算方式与Win32_PerfFormattedData_PerfProc_Process中的PoolPagedBytes属性不同,因此它可能不等于Win32_PerfFormattedData_PerfProc_Process的所有实例的PoolPagedBytes总数。 该属性仅显示最后一个观察值; 这不是一个平均值。 uint64 PrivateBytes; 以字节为单位的当前值,该进程已经分配了不能与其他进程共享的值。 uint64 VirtualBytes; 当前进程正在使用的虚拟地址空间的大小(以字节为单位)。 使用虚拟地址空间不一定意味着相应地使用磁盘或主内存页面。 虚拟空间是有限的,通过使用太多,该过程可能会限制其加载库的能力。 uint64 WorkingSet; 在这个过程的任何时间点的最大数量,以字节为单位。 工作集是进程中线程最近触及的一组内存页面。 如果计算机中的可用内存超过阈值,则即使不在使用中,页面也会留在进程的工作集中。 当可用内存低于阈值时,页面将从工作集中删除。 如果需要的话,在他们离开主存之前,它们被软件故障重新放回工作集。 我目前使用WorkingSet字段来报告进程的内存使用情况。 但是,这与任务pipe理器显示的内容不一致。 我尝试过使用PrivateBytes但这也不是“正确的”。 应用程序监视的进程是一个.NET进程(如果这很重要),应用程序会报告它使用至less比任务pipe理器同时显示多100MB的内存。 所以问题是什么是“公式”来计算过程的内存使用情况的最佳近似,如任务pipe理器所示?