问题标签 [interprocess]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1283 浏览

c - 当进程使用 shm_open() 时,Linux 内核如何分配内存指针?

我在 Linux 2.6 上,我有一个奇怪的问题。我有 3 个并发进程(从同一个进程派生)需要获取 3 个不同的共享内存段,每个进程一个。每个进程都执行此代码(请注意“消息”类型是用户定义的)

让我解释一下:我希望每个进程都分配一个包含消息的共享内存区域。为了确保另一个进程(消息接收者)可以访问同一个 shm,然后我将我的 shm 文件从“message”重命名为以消息指针命名的字符串(这是因为接收消息的进程已经知道指针)。

但是,在执行程序时,我尝试打印(出于调试目的)每个进程在映射使用 shm_open 获得的 fd 时收到的指针,我注意到它们都得到了相同的指针。这怎么可能?我认为也许其他进程在第一个进程之后和重命名段之前执行了 shm_open(),所以我还尝试通过使用进程共享互斥体使这些代码行成为原子操作,但问题仍然存在。

我真的很感激任何帮助或建议。

0 投票
3 回答
1254 浏览

c# - C#-C 进程间通信

好的,所以我有一个用 c# 编写的程序,它启动了一个运行另一个程序的进程,这个程序是用 C 编写的。现在我已经解决了从 C 程序重定向标准输出并在 C# 端拾取它,它工作得很好. 但是我需要一种方法让 C# 程序告诉 C 程序结束。我的第一个想法是,由于 C 程序最初是通过测试 conio.h 中的 kbhit 来控制的,所以我可以重定向 stdin 并流写入一些东西,它会检测到一个键击,但这不起作用(我猜是 kbhit不适合重定向),所以我四处搜索,很多人一直建议 PeekConsoleInput(),因为我是专门为 Windows 编写这个程序(实际上是特定的机器)。所以我将 c 程序更改为使用 PeekConsoleInput 而不是 kbhit 并重定向标准输入,但它仍然没有检测到我发送给它的任何内容。例如在 C...

以及来自 C# 代码的片段...

C 程序自行执行,但是当 C# 程序运行它时,它永远不会达到“Hit Detected”。我还将 s.WriteLine("Q") 延迟了几秒钟,看看它是否是时间问题,但它仍然不起作用。

理想情况下,我希望 C 程序能够自己运行,或者由 C# 程序运行,但即使你不能自己运行 C 程序,那也不会那么糟糕。

我试过的一件事是让 C# 程序只写一个文件,让 C 程序只用 fopen 轮询,直到它成功打开它,但是这个 C 程序的主要目的之一是将数据写入磁盘真的很快,我担心轮询磁盘可能会减慢它的速度。

另一件有点工作的事情就是关闭进程。但这很麻烦,因为 C 程序需要在关闭之前清理一些东西(除非有某种方法可以让 C 程序在关闭之前执行一些代码,但我不确定你是否可以这样做)。

完成此操作的其他方法是套接字、管道等,但对于一位信号来说似乎需要做很多工作。此外,我能找到的所有关于如何做到这一点的示例似乎都是如何让两个 C# 程序进行通信或如何让两个 C 程序进行通信,而不是使用两种不同语言的两个不同程序。

那么,首先,有什么方法可以让这个 stdin 重定向工作正常吗?如果没有,告诉C进程它需要退出的最简单的解决方案是什么?

0 投票
1 回答
5981 浏览

c++ - 提升 named_semaphore 的例子?

我还没有找到一个很好的例子来说明如何使用 boost::interprocess:: named_semaphore(甚至在 Boost 网站上也没有)。

我可以看到有关 interprocess_semaphore 的一些信息,但它们似乎完全不同,我不知道显示的内容是否也适用于另一个。

谁能给我一些此类示例/教程/文档的链接?

谢谢你。

0 投票
1 回答
1042 浏览

.net - 如何访问并尝试解析来自其他应用程序(如 MS Word 或 Visual Studio)的剪贴板数据?

我了解 3rd 方应用程序的开发人员不一定希望我访问他们的剪贴板数据,在最好的情况下,除了我从 Word 粘贴到记事本时得到的文本摘要之外。尽管如此,假设我想获取底层剪贴板内容并尝试提取对自己有用的东西。我该怎么做?这是否涉及弄乱其他进程的内存?或者尝试使用 dotnet 中的反射从剪贴板对象中检测和提取属性?或者你会如何处理这个问题?

ETA:好的,对于不太抽象的人,让我们考虑一个示例:在 Visual Studio 表单设计器中,我选择了一些小部件并进行复制。现在我想解析剪贴板以查找我刚刚复制的小部件的名称、位置和大小(我不想为 Visual Studio 等编写插件,我想专门从剪贴板获取信息)。我知道这在理论上是可能的,因为可以在 Visual Studio 进程的 2 个实例之间复制粘贴小部件(包括它们的名称、位置和其他属性)。

0 投票
1 回答
887 浏览

c++ - 使用 boost named_semaphore 的代码中的错误

我会将一些数据保存在共享内存中,使用命名信号量来管理访问:

但是,我在指示的行收到以下编译时错误:

这是我的系统:

macOS X 10.6

i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)

提升 1.44

谢谢!

0 投票
1 回答
553 浏览

c# - 在没有 BHO 的情况下以编程方式确定 IE 窗口当前 URL

有人可以指导我如何在没有 BHO 的情况下以编程方式确定 IE 的当前 URL 吗?

我能够想到完成这种功能的唯一方法是查看窗口的标题而不是 URL,但这似乎很棘手。

另一方面,我假设存储 URL 的文本框将有一个句柄,我将其附加到并读取文本。我在这个假设中正确吗?

任何指导将不胜感激。

PS:如果您可以提供适用于 Firefox 的示例/指导,则可以加分。

编辑:好的,所以进一步的研究开始发现我需要查看的是 GetWindowText 和消息 WM_GETTEXT。如果我解决了这一切,将发布答案。

0 投票
3 回答
6951 浏览

terminology - 什么是硬件信号量?

如果它是硬件信号量,如何从软件中使用它?是不是有一个软件API实际上是在硬件中实现的?

我在实现固件以与某些硬件接口时问。硬件和固件之间会有很多信息交换。我在头顶谈论硬件信号量,只是想了解更多关于它的信息。一些关于这方面的文献会有所帮助

0 投票
1 回答
474 浏览

c++ - 在 C++/Qt 中用于高效套接字通信的数据格式

我想实现一个实时跟踪 JVM 状态的分析器。我不确定哪种数据格式适合此任务,因为我必须接收 JVM 状态的更新。

我认为 XML 会很棒,但每次更改发送整个 XML 数据似乎都是非常虚假的。

0 投票
2 回答
2558 浏览

c++ - C++ 应用程序:是否可以将接受的 TCP 连接从一个进程传递到另一个进程?

所以我想知道 - 是否可以将接受的 TCP 连接(在 Windows 或 Unix 等操作系统上)从一个进程传递到另一个进程?这里的重点是传递连接 - 而不是以代理应用程序的方式传递数据。

0 投票
2 回答
303 浏览

c++ - 是否有任何用于接受 TCP 连接进程间交换的跨平台库?

有类似Boost的吗?或者任何其他 Windows、Mac、Linux 库用于将已建立的 TCP 连接从一个进程传递到另一个进程?所以我实际上什至不知道这是可能的,但似乎它是!所以我非常想在我的服务器中使用这样的功能!)而且我很想看到任何跨平台的库帮助我做到这一点。有这样的图书馆吗?