草庐IT

write_ctrl

全部标签

c++ - read_some/write_some 和接收/发送之间的区别?

我开始使用BoostAsio的TCP套接字。read_some和有什么区别和receive和write_some有什么区别?和send?谢谢! 最佳答案 据我所知,read_some和receive实际上是在做同样的事情。我认为只接收调用read_some或反之亦然。一个命名来自将套接字视为文件(读/写)的想法,而另一个命名来自连接(发送/接收)点看法。write_some和send也应该如此。 关于c++-read_some/write_some和接收/发送之间的区别?,我们在Stac

MongoDB Docker 容器 : ERROR: Cannot write pid file to/tmp/tmp. aLmNg7ilAm:设备上没有剩余空间

我像这样启动了一个MongoDB容器:dockerrun-d-p27017:27017--net=cdt-net--namecdt-mongomongo我看到我的MongoDB容器退出了:0e35cf68a29cmongo"docker-entrypoint.s…"LessthanasecondagoExited(1)3secondsagocdt-mongo我检查了我的Docker日志,我看到了:$dockerlogs0e35cf68a29cabouttoforkchildprocess,waitinguntilserverisreadyforconnections.forkedpro

MongoDB Docker 容器 : ERROR: Cannot write pid file to/tmp/tmp. aLmNg7ilAm:设备上没有剩余空间

我像这样启动了一个MongoDB容器:dockerrun-d-p27017:27017--net=cdt-net--namecdt-mongomongo我看到我的MongoDB容器退出了:0e35cf68a29cmongo"docker-entrypoint.s…"LessthanasecondagoExited(1)3secondsagocdt-mongo我检查了我的Docker日志,我看到了:$dockerlogs0e35cf68a29cabouttoforkchildprocess,waitinguntilserverisreadyforconnections.forkedpro

c++ - 写入套接字时使用 write() 而不是 send() 的性能影响

我正在使用典型的套接字API在Linux平台上用C++编写网络应用程序,并且我正在研究将字节数组写入TCP流的两种替代方法:通过调用write()或通过调用发送()。我知道,由于这是Linux,套接字句柄只是一个文件描述符,因此对套接字执行read()和write()调用是有效的,但是套接字API还提供了send()和recv()函数来执行相同的任务。因此,我想知道是否有任何特别的理由选择一类函数而不是另一类——发送/接收函数是否针对网络写入/读取进行了优化,它们的性能是否更好等?或者我使用哪些功能真的很随意?read()和write()在所有情况下都能正常运行吗?感谢您的任何见解!

c++ - GNU STL 字符串 : is copy-on-write involved here?

(免责声明:我不知道C++标准对此会说什么……我知道,我很糟糕)在处理非常大的字符串时,我注意到std::string正在使用写时复制。我设法编写了最小的循环来重现观察到的行为,例如,下面的循环运行得非常快:#includeusingstd::string;intmain(void){stringbasestr(1024*1024*10,'A');for(inti=0;i在循环体a_copy[1]='B';中添加写入时,显然发生了实际复制,并且程序在0.3秒内运行,而不是几毫秒。100次写入使其速度减慢了大约100倍。但后来变得很奇怪。我的一些字符串没有写入,只是读取,这没有反射(re

c++ - 创建文件 : direct write operation to raw disk "Access is denied" - Vista, Win7

相关的微软文档是:BlockingDirectWriteOperationstoVolumesandDisksCreateFile,remarksonPhysicalDisksandVolumes可执行文件是用C++编写的,它调用CreateFile()来打开一个没有无文件系统的SD卡。CreateFile()和连续的ReadFile()调用对于GENERIC_READ来说是成功的,没有管理员权限。CreateFile对GENERIC_WRITE失败,即使具有管理员权限也是如此。在资源管理器中,我在属性>兼容性>权限级别下设置了以管理员身份运行。我还尝试从管理员cmd运行可执行文件(以

c++ - Visual Studio F5、ctrl+F5 或在 Visual Studio 之外运行有什么不同?

我用vc++编写了一个程序,它在各种情况下具有不同的行为,如下所示。当我按F5运行它时,它在Release模式下正常工作。当我通过ctrl+F5运行它时,当我开始向程序发送数据时它会崩溃。在VisualStudio之外它会立即崩溃。我不知道如何找到错误。任何想法这些案例有什么不同? 最佳答案 运行ctrl+F5将在没有调试器的情况下运行应用程序。(http://msdn.microsoft.com/en-US/library/8b59xk0f(v=vs.90).aspx)这与在Release模式下运行不同。您可以在Debug模式下运

c++ - 在 Eclipse CDT 控制台中传递传输结束 (Ctrl + D) 字符

我有一个C++应用程序,我需要向它发送一个传输结束信号。我可以在控制台上执行Ctrl+D,但是当我在Eclipse中尝试时,它不起作用。我正在使用带有CDT的EclipseGalileo。 最佳答案 这似乎是一个尚未解决的错误:bug159803(2015年9月解决,针对CDT9.0)SinceEclipse3.1itispossibletosignalEOF(usingCTRL+D/Z-bindableinkeypreferences)inconsoleview,andItestedthissuccessfullywithEcli

c++ - 为什么 ostream::write() 在 C++ 中需要 ‘const char_type*’ 而不是 ‘const void*’?

fwrite()C中的函数使用constvoid*restrictbuffer作为第一个参数,因此您可以将指针传递给您的struct直接作为第一个参数。http://en.cppreference.com/w/c/io/fwrite例如fwrite(&someStruct,sizeof(someStruct),1,file);但在C++中,ostream::write()需要constchar_type*,这会迫使您使用reinterpret_cast.(在VisualStudio2013中,它是constchar*。)http://en.cppreference.com/w/cpp/

javascript - 在 Windows 上处理 Node.js 中的 CTRL+C 事件

我正在处理一个Node项目,我想在退出时将一些内存写入文件。我想这很简单:process.on('exit',function(){//handleyouronexitcodeconsole.log("Exiting,haveaniceday");});但是,当收到CTRL+C时,此代码不会执行(在Windows上)。鉴于这是退出Node的实际方式,这似乎有点问题。此时我尝试处理信号(on.('SIGINT',...)),这导致错误:node.js:218throwe;//process.nextTickerror,or'error'eventonfirsttick^Error:Nos