首页 文章
  • 1 votes
     answers
     views

    如何为每个子进程分配一个新的终端窗口

    我想分叉多个进程并为每个子进程分配它自己的终端窗口,以便可以轻松演示IPC . 分叉很顺利,如果我在同一个终端上运行子进程,它运行正常 . 但是为了让每个子进程都有自己的终端窗口,我这样做 execl("/usr/bin/xterm", "xterm", "-e", "yourprogram", NULL); 该程序...
  • 1 votes
     answers
     views

    node-ipc cluster仅使用1个worker

    我在Windows 8.1上的nodejs中使用了node-ipc和cluster,并成功集群了一个ipc服务器并创建了多个进程,就像我有CPU一样(在我的情况下为4),它们共享相同的端口和id . 我将多个客户端连接到此群集服务器,并期望主进程将任务委派给免费的工作程序 . 但是这不起作用,主人总是选择同一个 Worker . 我检查过并且所有工作进程都在运行 . 我怎样才能让主人每次选择最不...
  • 0 votes
     answers
     views

    nodejs集群主服务器和工作进程如何相互通信?

    https://nodejs.org/api/cluster.html#cluster_how_it_works 在这个链接中,他们提到节点工作进程通过IPC与父进程通信 . IPC两个进程有很多方法相互通信? 管道 列出项目 信号 留言 队列 信号量 共享 记忆 套接字 Namedpipes Nodejs掌握和 Worker 流程以什么方式进行沟通?
  • 52 votes
     answers
     views

    Unix Domain Sockets如何区分多个客户端?

    TCP具有元组对(IP地址/端口/类型)以告知一个客户端与另一个客户端 . UDP传递客户端IP和端口 . unix域如何跟踪不同的客户端? 换句话说,服务器创建一个绑定到某个路径的套接字,例如/ tmp / socket . 2个或更多客户端连接到/ tmp / socket . 下面是什么来跟踪来自client1和client2的数据?我想网络堆栈在域套接字中不起作用,所以内核在这里完成...
  • 0 votes
     answers
     views

    用于TCP类型服务器的Unix域套接字而不是主机/端口

    这适用于所有Node.js版本6 假设我目前有一个包含多个客户端的TCP服务器: const server = net.createServer(s => { }); server.listen(6000); 我与客户连接: const s1 = net.createConnection({port:6000}); const s2 = net.createConnection({...
  • 0 votes
     answers
     views

    使用Python服务器和c客户端的Unix域套接字无法工作(找不到套接字文件)

    我是unix域套接字的新手(但对于套接字的一般概念并不是全新的),并试图让用Python编写的服务器与用C编写的客户端进行通信,以了解有关它们的更多信息 . 我使用了https://pymotw.com/2/socket/uds.html和http://beej.us/guide/bgipc/output/html/multipage/unixsock.html中的代码示例 . 根据我的理解,它们...
  • 1 votes
     answers
     views

    WinSock2 IPC示例

    我的任务是接受来自一个进程的tcp套接字连接,并使用windows的socket IPC机制将其发送到另一个进程(根据msdn,socket,WinSock 2具体来说,是在windows上进行进程间通信的一种方式,也许像unix-domain socket这样的东西,但它没有明确说明) . 我在互联网上搜索了一段时间,找不到任何有用的例子 . 有人可以通过Winsock 2 IPC提供设置Win...
  • 0 votes
     answers
     views

    使用端口的IPC方法必须使用网络套接字吗?

    在inter process communication(IPC)中(参见维基百科中的文章,特别是在Linux中), 如果IPC方法使用端口,那么它必须是使用网络套接字的IPC方法吗?是否有IPC方法使用端口而非IPC通过网络套接字? 这里的端口是否在传输层传输端口? 一个小问题:在Comer的操作系统设计中:Xinu方法,“端口”有不同的定义吗? Xinu使用术语进程间通信...
  • 9 votes
     answers
     views

    具有共享内存的进程之间的通信结果是零拷贝?

    我正在使用内核2.6在Linux上编写网络守护程序,该内核具有 one producer process 和 consumer processes 的N,它不会对数据进行任何更改,也不会向 生产环境 者创建任何响应 . 每当 生产环境 者进程生成一个数据对象,其长度从几个10字节变化到几十个K字节时,就必须将数据对象传递给一个可用的消费者进程 . 第一次,我考虑使用命名/未命名的PIPE . 但是...
  • 8 votes
     answers
     views

    使用Boost :: interprocess在共享内存中的<int,void *>映射

    我正在尝试在以下类型的共享内存中构建映射 我像这样创建共享内存区域: managed_shared_memory segment(create_only ,&quot;MyMap&quot; ,size); ShMemAllocator_t alloc_inst (segment.get_segment_manager()); map = segment.construc...
  • 0 votes
     answers
     views

    从共享内存中打印垃圾值

    我目前正在使用C进行 生产环境 者 - 消费者实现 . 首先,我在可变长度的共享内存上创建一个缓冲区,该缓冲区由用户在使用者进程中提供 . 然后,在 生产环境 者进程中,我需要访问共享内存并将新数据放入缓冲区,以便消费者可以使用 . 以下是消费者代码: #include &quot;common.h&quot; #include &lt;unistd.h&gt; int fd; int errn...
  • 3 votes
     answers
     views

    如何附加到现有共享内存段

    我遇到共享内存问题 . 我有一个创建和写入共享内存段的进程就好了 . 但我无法获得第二个进程来附加相同的现有段 . 如果我使用IPC_CREATE标志,我的第二个进程可以创建一个新的共享段,但我需要附加到第一个进程创建的现有共享段 . 这是我在第二个过程中的代码: int nSharedMemoryID = 10; key_t tKey = ftok(&quot;/dev/null&quot;, ...
  • 2 votes
     answers
     views

    如何检查在ZeroMQ PUB-SUB模式下发送时由于HWM而丢弃的消息

    我已经使用ZeroMQ(更具体地说是CZMQ)在Linux中为IPC实现了消息总线 . Here是我实施的 . 我的问题是, how do I know that send dropped the message when the publisher buffer is full? 在我的简单测试设置中,我使用的是具有代理的发布者 - 订阅者 . 我有一个快速发送器和一个非常慢的接收器,导致消息...
  • 2 votes
     answers
     views

    在** portable C **中,如何启动连接命令's stdin to the launcher' s stdout的命令?

    在C程序(p1)中,如何启动动态构造的命令(及其参数),从p1的标准输出读取其标准输入? 注意: 除了这个stdout - &gt; stdin管道之外的方法也可以 provided 在Windows和Linux上是 PORTABLE . 我不能在这里使用C,Java,Perl,Ruby,Python等 . 此外,它的Windows版本是否具有MinGW依赖性? REOPENED ...
  • 1 votes
     answers
     views

    在Windows中:从C程序获取无缓冲的stdout到Java程序InputStream [现在用最少的例子!]

    SOLVED: HovecraftFullOfEels发现了我的错误 . 请参阅下面的答案评论 . 我应该调用start()时在Thread对象上调用run() . 在我的原始程序中,这意味着它在stderr上被阻止,直到程序退出然后立即获得stdout . UPDATE: 根据要求,我已经制作了一个最小的例子 . 这是制作人: package producer; public class Pr...
  • 2 votes
     answers
     views

    通过stdin和stdout与长时间运行的子进程通信

    对不起,我想这之前已经被问过,但由于某种原因我似乎无法找到答案 . 我试图启动一个长时间运行的子进程,如REPL(lein repl,python),并通过stdin / stdout与它通信 . 我找到了许多如何在父母只写一次孩子然后读取一些输入的情况下做这个的例子,但是我无法弄清楚如何做到这一点我可以写入和读取子进程'stdin / stdout无限期,就像我使用TCP套接字一样 . 理想情况...
  • 2 votes
     answers
     views

    Perl:open3但是对于n个文件描述符

    open3只接受STDIN,STDOUT和STDERR . 如果正在运行的命令使用其他文件描述符,则open3无法捕获这些: echo foo # Can be captured echo foo &gt;&amp;2 # Can be catured echo foo &gt;&amp;3 # Cannot be captured (with open3) 我已经研究过IPC :: Run :...
  • 2 votes
     answers
     views

    单例同步C.

    如果我必须在C中编写单例类,我将使用静态变量,私有构造函数和返回类对象的公共静态函数 . 但是在多线程环境中,代码会出现问题 . 为了避免多个线程同时访问同一个变量,Boost线程是用于同步的最佳机制吗?我的意思是在资源上设置/取消设置锁/互斥锁 . 在C标准库中还有其他内置的东西,我不需要下载boost,构建东西等吗?我听说过C Ox,但不太了解 .
  • -2 votes
     answers
     views

    C语言中的套接字通信 . 发送文件内容

    所以前几天我得到了一个相对简单的任务,即构建一些客户端和一些服务器代码,服务器在这些代码中收到消息并返回当前系统时间 . 这并不难,我交付并获得了一个简单的标记 . 我开始考虑更多,我决定出发并尝试发送特定文件 server --&gt; client 的内容(服务器将内容发送到客户端) . 当我构建我经常在本地测试的代码时,它按预期工作,当我将服务器代码上传到运行Ubuntu的服务器(hah)时...
  • 0 votes
     answers
     views

    为什么checkCallingOrSelfPermission危险?

    Android文档提醒您谨慎使用checkCallingOrSelfPermission . 查看与checkCallingPermission相比的实现,唯一的区别是,如果Binder.processID与相同的应用进程ID相同,则第一个API不会拒绝该调用 . 有人可以解释使用此API的危险吗?
  • 0 votes
     answers
     views

    消息队列标识符已更改

    我试图在两个进程之间实现简单的服务器 - 客户端通信 . 我在服务器进程中遇到有2个消息队列的问题 . 问题是第二个队列的消息队列ID在第一个队列的 msgrcv 调用之后立即以某种方式更改 . 请考虑下面我的服务器进程的简化版本(用于演示目的): #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt...
  • 2 votes
     answers
     views

    使用MPI的Cannon算法

    我想在C中使用MPI实现Cannon算法,使用笛卡尔通信器,使用默认函数移位并从2个矩阵发送2维块 . 我曾尝试过在网上找到的几个教程,但我发现没有一个按照我想要的方式实现,使用二维块和笛卡尔传播者 . 编辑:我意识到我以错误的方式使用proc_grid_size变量,将进程矩阵的大小与块大小混淆并进入一些未分配的内存区域,我设法克服了错误 . 我正在运行25个进程和2个10 * 10矩阵的输入存...
  • 0 votes
     answers
     views

    使用scanf从管道读取失败

    在IPC上工作我被要求编写一个C程序,作为其他两个C可执行文件之间的管道: 名为'sln1.out'的第一个可执行文件接收六个参数并打印三个数字 . 名为'sln2.out'的第二个可执行文件接收三个参数并打印一个数字 . 我将以下代码分为两部分 - 第一部分是对管道的写入,并且我知道它的工作原理 . 这个问题开始第二部分:我关闭了 stdin 所以现在当我使用 dup(fd[0]) 新文件描述符...
  • 3 votes
     answers
     views

    fgetc阻塞:从管道读取的问题

    我希望能够分叉一个进程并让子进程和父进程使用管道进行双向链接 . 我创建了2个管道,并从第一个管道的末尾开始读取父级,然后写入第二个管道的开头,反之亦然,但我遇到了一些问题 . 这里有一个简短版本的代码(错误检查省略) void PlayGame(int in, int out, int first, int id){ FILE *inStream = fdopen(in, &quot...
  • 0 votes
     answers
     views

    在linux中为命名管道做每个新客户端连接有不同的缓冲区吗?命名管道在linux和windows下的行为是否相同?

    对于windows ==&gt;命名管道的所有实例共享相同的管道名称,但每个实例都有自己的缓冲区和句柄,并为客户端/服务器通信提供单独的管道 . 实例的使用使多个管道客户端能够同时使用相同的命名管道 . 对于linux,我已经通过我的服务器进程创建了一个命名管道 . 我想要将多个客户端连接到此命名管道,并且每个新连接不应相互干扰,新客户端应该有单独的连接 . 但是当多个客户端连接到服务器时,是否有...
  • 3 votes
     answers
     views

    与子进程stdout / stdin通信

    我正在尝试与进程通信(它本身写入stdin和stdout以在终端中与用户进行交互)并读取它的stdin并在C中写入它的stdout . 因此,我尝试以编程方式替换shell用户 . 一个美国式的例子:想象一下,我想出于某种原因在C中使用VIM . 然后我还需要编写命令(stdout)并从编辑器中读取东西(stdin) . 最初我认为这可能是一项微不足道的任务,但似乎没有标准方法 . int s...
  • 6 votes
     answers
     views

    什么是嵌入式Linux的优秀开源消息总线?

    我正在寻找一个适合嵌入式Linux设备(Linux和uClinux)的开源消息总线 . 它需要满足以下标准: 必须是免费软件和LGPL或更自由的许可证,因为uClinux仅支持静态链接 必须拥有C API 必须占用相对较小的空间,而不依赖于第三方库 必须与Linux / uClinux 2.4.22兼容 应该经过充分测试,并且最好设置现有的测试框架 应该有一个记录良好的协议...
  • 5 votes
     answers
     views

    如何在打字稿中加载电子模块

    我尝试从typescript中的电子获取ipcRenderer模块,将信息从当前组件发送到核心并将信息返回到窗口(电子铬浏览器) . 通过将ts代码转码为ES5,我得到的是“未找到模块”错误 . const ipc = require('electron') . ipcRenderer;` Update: 错误在&quot;Module not found&quot;与此之间切换: ERROR i...
  • 3 votes
     answers
     views

    如何在Windows中访问除stdout,stderr和stdin之外的继承的匿名管道HANDLE?

    我试图通过Windows中的匿名管道从子进程接收数据 . 我知道如何使用标准I / O流执行此操作,但这些用于其他目的 . 我也知道如何使用 fork() , pipe() 和 execv() 在Linux或OSX中执行此操作 . 在Windows中,您可以使用 CreatePipe() 创建管道,并使一端不能与 SetHandleInformation() 一起继承 . 然后对于stdout和s...
  • 1 votes
     answers
     views

    正确关闭应用程序:TerminateProcess的替代方案

    我正面临着 TerminateProcess() 功能的问题 . 应用程序我使用 CreateProcess() 来执行我的JobLauncher . JobLauncher进程然后启动一个控制台程序(使用createprocess),该程序有效地执行作业可执行文件,等待其终止并监视持续时间,用户和内核时间等 . 为了从JobScheduler中删除作业,我首先开始使用TerminateProce...

热门问题