草庐IT

goldfish_pipe

全部标签

ruby - 如果 IO.pipe 表现得像资源,为什么需要在子进程中关闭管道?

下面的代码可以工作,但是如果reader和writer是跨父进程和子进程的共享资源,为什么他们首先要关闭?reader,writer=IO.pipeforkdoreader.closewriter.puts"foobar"endwriter.closeputsreader.read这对我来说没有任何意义,因为我认为应该像我编写的以下代码那样在写操作之后关闭读取器和写入器reader,writer=IO.pipeforkdowriter.puts"foobar"writer.closeendProcess.waitputsreader.readreader.close我不知道为什么它不起

ruby - 使用 youtube 数据 API 将视频上传到 youtube:Broken pipe (Errno::EPIPE)

我正在尝试使用youtube数据api将本地视频文件上传到我的youtube帐户。示例:https://github.com/youtube/api-samples/blob/master/ruby/upload_video.rb调用:$rubyupload_video.rb--filevideo.mp4我收到一条错误消息:/Users/user/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/openssl/buffering.rb:326:in`syswrite':Brokenpipe(Errno::EPIPE)from/Users/user/.rvm/

ruby - ruby 中是否有 `pipe` 等价物?

偶尔在编写Ruby时我发现自己想要一个pipe方法,类似于tap但返回result调用blockself作为参数,像这样:classObjectdefpipe(&block)block.call(self)endendsome_operation.pipe{|x|some_other_operation(x)}..但到目前为止我还没有弄清楚它叫什么,如果它存在的话。存在吗?如果没有,我知道我可以通过monkey-patch对象来添加它,但是,你知道,那很糟糕。除非有一个出色的、保证永远不会冲突的(描述性的和简短的)名称,否则我可以使用它... 最佳答案

java - 如何修复 java.net.SocketException : Broken pipe?

我正在使用apachecommonshttp客户端使用post方法调用url来发布参数,它很少抛出以下错误。java.net.SocketException:Brokenpipeatjava.net.SocketOutputStream.socketWrite0(NativeMethod)atjava.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)atjava.net.SocketOutputStream.write(SocketOutputStream.java:136)atjava.io.Buffered

java - 如何修复 java.net.SocketException : Broken pipe?

我正在使用apachecommonshttp客户端使用post方法调用url来发布参数,它很少抛出以下错误。java.net.SocketException:Brokenpipeatjava.net.SocketOutputStream.socketWrite0(NativeMethod)atjava.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)atjava.net.SocketOutputStream.write(SocketOutputStream.java:136)atjava.io.Buffered

python - 在 Python 中对 subprocess.PIPE 进行非阻塞读取

我正在使用subprocessmodule启动子进程并连接到其输出流(标准输出)。我希望能够在其标准输出上执行非阻塞读取。在我调用.readline之前,有没有办法使.readline非阻塞或检查流上是否有数据?我希望它是可移植的,或者至少可以在Windows和Linux下工作。这是我现在的做法(如果没有可用数据,它会阻塞在.readline上):p=subprocess.Popen('myprogram.exe',stdout=subprocess.PIPE)output_str=p.stdout.readline() 最佳答案

python - 在 Python 中对 subprocess.PIPE 进行非阻塞读取

我正在使用subprocessmodule启动子进程并连接到其输出流(标准输出)。我希望能够在其标准输出上执行非阻塞读取。在我调用.readline之前,有没有办法使.readline非阻塞或检查流上是否有数据?我希望它是可移植的,或者至少可以在Windows和Linux下工作。这是我现在的做法(如果没有可用数据,它会阻塞在.readline上):p=subprocess.Popen('myprogram.exe',stdout=subprocess.PIPE)output_str=p.stdout.readline() 最佳答案

驱动开发:通过PIPE管道与内核层通信

在本人前一篇博文《驱动开发:通过ReadFile与内核层通信》详细介绍了如何使用应用层ReadFile系列函数实现内核通信,本篇将继续延申这个知识点,介绍利用PIPE命名管道实现应用层与内核层之间的多次通信方法。什么是PIPE管道?在Windows编程中,数据重定向需要用到管道PIPE,管道是一种用于在进程间共享数据的机制,通常由两端组成,数据从一端流入则必须从令一端流出,也就是一读一写,利用这种机制即可实现进程间直接通信。管道的本质其实是一段共享内存区域,多数情况下管道是用于应用层之间的数据交换的,其实驱动中依然可以使用命名管道实现应用层与内核层的直接通信。那么如何在内核中创建一个管道?请看

驱动开发:通过PIPE管道与内核层通信

在本人前一篇博文《驱动开发:通过ReadFile与内核层通信》详细介绍了如何使用应用层ReadFile系列函数实现内核通信,本篇将继续延申这个知识点,介绍利用PIPE命名管道实现应用层与内核层之间的多次通信方法。什么是PIPE管道?在Windows编程中,数据重定向需要用到管道PIPE,管道是一种用于在进程间共享数据的机制,通常由两端组成,数据从一端流入则必须从令一端流出,也就是一读一写,利用这种机制即可实现进程间直接通信。管道的本质其实是一段共享内存区域,多数情况下管道是用于应用层之间的数据交换的,其实驱动中依然可以使用命名管道实现应用层与内核层的直接通信。那么如何在内核中创建一个管道?请看

Broken Pipe问题及其解决

2022-06-2710:01:17.501ERROR1---[nio-5010-exec-7]o.a.c.c.C.[.[.[/].[dispatcherServlet]:Servlet.service()forservlet[dispatcherServlet]incontextwithpath[]threwexception[Requestprocessingfailed;nestedexceptioniscom.alibaba.excel.exception.ExcelGenerateException:CannotcloseIO.]withrootcausejava.io.IOExce