草庐IT

C++标准

全部标签

ruby - IO.popen 不工作蹩脚的标准输入和标准输出编码

我一直在使用管道和IO.popen,特别是在Ruby中,遇到了一个我无法弄清楚的问题。我正在尝试将二进制数据从flac进程写入到lame进程到一个文件中。我使用的代码结构如下。#filepathsfile=Pathname.new('example.flac').realpathdest=Pathname.new('example.mp3')#executetheprocessandreturntheIOobjectwav=IO.popen("flac--decode--stdout\"#{file}\"",'rb')lame=IO.popen("lame-V0--vbr-new--"

c++ - 如何测试主存访问时间?

寻找一个C/C++程序来测试访问一block固定内存需要多长时间,特别是在RAM中。如何确保测试访问时间不是缓存或TLB数据?例如,我可以“禁用”所有缓存/TLB吗?或者我可以在RAM中指定一个特定的地址来只写/只读吗?另一方面,我如何确保我只测试缓存?有没有办法告诉编译器在哪里保存和读取,缓存/内存?例如,这个测试是否有一个众所周知的标准程序(inoneofthesebooks?)?我确实看到了这个但是我不明白如何调整列表的大小,你可以控制内存访问是命中一级缓存,二级缓存还是主内存:measuringlatenciesofmemory如何正确编写此测试程序?

c++ - 如何使用 win32 从多线程上下文初始化线程原语?

我想创建一个静态锁voidfoo(){staticCRITICAL_SECTION*lock=NULL;//thisistheproblem,Icannotcreateanyprimitivetodothiswithwin32threadsstaticlongisInitialized=0;if(InterlockedExchange(&isInitialized,1)==0){//thiswillensurethatlockisinitializedonlyoncelock=(CRITICAL_SECTION*)malloc(sizeof(CRITICAL_SECTION));Ini

Python:从多个子进程异步打印标准输出

我正在测试一种从Python2.7中的多个子进程打印出标准输出的方法。我设置的是一个主进程,目前生成三个子进程并吐出它们的输出。每个子进程都是一个for循环,它会随机休眠一段时间,当它醒来时,会说“SleptforXseconds”。我看到的问题是打印输出似乎是同步的。假设子进程A休眠1秒,子进程B休眠3秒,子进程C休眠10秒。主进程在尝试查看子进程C是否有内容时停止了整整10秒,即使其他两个进程可能已经休眠并打印了一些内容。这是为了模拟一个子进程是否真的比其他两个进程在更长的时间内没有输出。我需要一个适用于Windows的解决方案。我的代码如下:主进程.pyimportsysimpo

c - 未检测到 Windows CreateProcess 退出

我正在尝试使用单独的进程来完成一些工作。在Windows版本中,我使用CreateProcess启动它并正常重定向标准输入/标准输出(继承的匿名管道)。管道工作;但是,当子进程退出时,父进程会挂起读取调用。父进程如何知道子进程已经退出?我认为ReadFile应该在子进程退出时立即返回一个损坏的管道错误。用于创建具有重定向输入和输出的子进程的Windows示例代码具有相同的问题,因此我将其作为MCVE发布。也可在https://msdn.microsoft.com/library/windows/desktop/ms682499获得#include#include#include#inc

c - Windows 控制台下的 Stdin 和 EOF 行为

我正在学习C中输入的工作原理。我最大的困难是理解终端中的EOF行为首先,我正在使用Windows和GCC编译器“以防万一”其次,我不是要重定向来自文件的输入...我的问题是关于来自Windows控制台的输入我的问题:我读到EOF关闭了输入流,在EOF之后你不能从标准输入读取...这对我来说不是这种情况!即使在我明确输入Enter-Ctrl-Z-Enter之后,如果我执行另一个getchar()调用,它也会从标准输入中读取...例如:intc=0;charstr[100]={0};printf("Typeinastringwithspacessosomecharswouldremaini

c - windows vista 的 slim reader writer locks 有跨平台版本吗?

WindowsSRW实现的质量让我大吃一惊。它比临界区更快,而且只有几个字节的内存开销。很遗憾,它只有WindowsVista/Windows7。由于这是一个纯粹的用户空间实现,有人知道是否有跨平台实现吗?有没有人对那里的解决方案进行逆向工程?我不想添加像boost这样的东西只是为了引入少于100LOC的解决方案。 最佳答案 如果您想要某种符合某些标准的“便携”东西...如果您使用的是POSIX线程,则有pthread_rwlock_init()和friend。这些当然不是通常用于Windows,而是用于Unix类型的操作系统。但是

c++ - 内部和外部编码与 Unicode

由于这个问题的评论中有几位发帖人散布了很多错误信息:C++ABIissueslist我创建这个是为了澄清。用于C风格字符串的编码是什么?Linux是否使用UTF-8编码字符串?外部编码与窄字符串和宽字符串使用的编码有何关系? 最佳答案 实现已定义。甚至应用程序定义;标准并没有真正对应用程序的用途施加任何限制他们,并期望很多行为取决于语言环境。全部真正实现定义的是字符串中使用的编码文字。在什么意义上。大多数操作系统会忽略大部分编码;你会如果'\0'不是空字节就会有问题,但即使是EBCDIC也能满足要求。否则,根据上下文,会有一些可能重

c - 将 POSIX C 代码移植到 Windows

我刚刚完成了一个用C编写的小项目,我从串口读取数据流并解析传入的数据。该软件是为POSIX系统(使用termios)编写的,并遵循使用串行i/o的标准步骤使用open()打开串口设备配置通信参数(termios)在文件句柄上设置阻塞模式(fcntl)在串行接口(interface)上​​执行read()。完成后在串行接口(interface)上​​执行close()。除了套接字部分,代码是直接的ANSIC。我的问题是,要使代码在Windows平台上运行有多复杂。该端口不会由我编写,我只想向可能有兴趣移植它的其他人提供一个指示(即微不足道,不那么微不足道,撕裂你的眼睛会引起精神错乱)。此

MATLAB 的自定义 C dll - loadlibrary 错误

我有一个为MATLAB编写的自定义dll,它在我们的开发机器上运行良好。但是,当我在没有开发工具的干净机器上尝试时,我收到消息:>>loadlibraryCMatLabCMatLab.h???Errorusing==>loadlibraryat279MicrosoftVisualC++2005or2008isrequiredtousethisfeature.经过一番研究,似乎很明显需要编译器在运行时解析头文件,所以我安装了标准的WindowsSDK,运行mex-setup来选择编译器,但我仍然得到同样的错误信息。这就是我为选择编译器所做的。>>mex-setupPleasechoose