草庐IT

sysv-ipc

全部标签

linux - x86-64 SysV ABI 中参数和返回值寄存器的高位是否允许垃圾?

x86-64SysVABI指定了如何在寄存器中传递函数参数(在rdi中的第一个参数,然后是rsi等),以及如何将整数返回值传回(在rax和然后rdx对于非常大的值)。然而,我找不到的是,当传递小于64位的类型时,参数或返回值寄存器的高位应该是什么。例如,对于以下函数:voidfoo(unsignedx,unsignedy);...x将在rdi中通过和y在rsi,但它们只有32位。做rdi的高32位和rsi必须为零?直觉上,我会假设是的,但是codegenerated所有gcc、clang和icc都有特定的mov开始时的指令将高位清零,因此编译器似乎另有假设。同样,编译器似乎假定返回值的

linux - x86-64 SysV ABI 中参数和返回值寄存器的高位是否允许垃圾?

x86-64SysVABI指定了如何在寄存器中传递函数参数(在rdi中的第一个参数,然后是rsi等),以及如何将整数返回值传回(在rax和然后rdx对于非常大的值)。然而,我找不到的是,当传递小于64位的类型时,参数或返回值寄存器的高位应该是什么。例如,对于以下函数:voidfoo(unsignedx,unsignedy);...x将在rdi中通过和y在rsi,但它们只有32位。做rdi的高32位和rsi必须为零?直觉上,我会假设是的,但是codegenerated所有gcc、clang和icc都有特定的mov开始时的指令将高位清零,因此编译器似乎另有假设。同样,编译器似乎假定返回值的

Linux IPC选择?

我有两个进程A和B。A和B有时需要通信(双向)以传递信号、消息等。我对Linux中可用的IPC进行了一些基础研究,例如信号量、消息队列、dbus等。现在我在决定使用哪一个时感到困惑,谁能告诉我哪个IPC更适合我的应用程序?提前致谢已编辑:阐述应用程序。(这是一个嵌入式应用程序)进程A将监控温度、速度计算等。进程B将驱动电机、读取传感器值(数字)等。有时我需要向进程B发送信号,告知已达到最高温度,因此停止驱动电机。有时需要将从进程A中的传感器读取的数据发送到进程B。像这样,数字数据需要跨进程传递。我正在ARM架构中执行此操作。 最佳答案

Linux IPC选择?

我有两个进程A和B。A和B有时需要通信(双向)以传递信号、消息等。我对Linux中可用的IPC进行了一些基础研究,例如信号量、消息队列、dbus等。现在我在决定使用哪一个时感到困惑,谁能告诉我哪个IPC更适合我的应用程序?提前致谢已编辑:阐述应用程序。(这是一个嵌入式应用程序)进程A将监控温度、速度计算等。进程B将驱动电机、读取传感器值(数字)等。有时我需要向进程B发送信号,告知已达到最高温度,因此停止驱动电机。有时需要将从进程A中的传感器读取的数据发送到进程B。像这样,数字数据需要跨进程传递。我正在ARM架构中执行此操作。 最佳答案

java - Linux 上 Java/C++ 应用程序共享内存 IPC 的良好替代方案

我目前正在为Java和C++应用程序之间的IPC使用共享内存,但正在寻找更方便的替代方案。有人可以建议具有相同性能和速度的更好方法吗?谢谢! 最佳答案 这取决于您计划如何让您的应用进行交互。在POSIX环境中,您有管道、共享内存、套接字、信号量和消息队列。看到这个问题:ComparingunixlinuxIPC获取更多信息。您的流程(即客户端/服务器、生产者-消费者等)的交互模型是什么?根据个人经验,我建议您最好的选择是管道(因为它们只是读取和写入字节的文件)或套接字(因为两种语言都支持它们)。

java - Linux 上 Java/C++ 应用程序共享内存 IPC 的良好替代方案

我目前正在为Java和C++应用程序之间的IPC使用共享内存,但正在寻找更方便的替代方案。有人可以建议具有相同性能和速度的更好方法吗?谢谢! 最佳答案 这取决于您计划如何让您的应用进行交互。在POSIX环境中,您有管道、共享内存、套接字、信号量和消息队列。看到这个问题:ComparingunixlinuxIPC获取更多信息。您的流程(即客户端/服务器、生产者-消费者等)的交互模型是什么?根据个人经验,我建议您最好的选择是管道(因为它们只是读取和写入字节的文件)或套接字(因为两种语言都支持它们)。

c++ - Python 和 C++ 应用程序的简单但快速的 IPC 方法?

我有一个使用Python和C++代码的GNURadio应用程序。我希望能够向事件的C++代码发出信号。如果它们在同一范围内,我通常会使用一个简单的bool值,但代码是分开的,以至于需要某种形式的共享内存。所讨论的代码对性能至关重要,因此需要一种有效的方法。我最初考虑的是Python和C++都可以访问的共享内存段。因此我可以在python代码中设置一个标志并从C++中检查它。因为我只需要一个简单的标志来暂停C++代码,信号量就足够了吗?为了清楚起见,我需要从Python设置一个标志,C++代码将简单地检查这个标志,如果设置了它,则进入一个繁忙的循环。那么尝试在Python/C++之间实现

c++ - Python 和 C++ 应用程序的简单但快速的 IPC 方法?

我有一个使用Python和C++代码的GNURadio应用程序。我希望能够向事件的C++代码发出信号。如果它们在同一范围内,我通常会使用一个简单的bool值,但代码是分开的,以至于需要某种形式的共享内存。所讨论的代码对性能至关重要,因此需要一种有效的方法。我最初考虑的是Python和C++都可以访问的共享内存段。因此我可以在python代码中设置一个标志并从C++中检查它。因为我只需要一个简单的标志来暂停C++代码,信号量就足够了吗?为了清楚起见,我需要从Python设置一个标志,C++代码将简单地检查这个标志,如果设置了它,则进入一个繁忙的循环。那么尝试在Python/C++之间实现

PHP 和 mod_fcgid : ap_pass_brigade failed in handle_request_ipc function

这在https://stackoverflow.com/a/12686252/219116之前已经被询问和回答过但是,那里的解决方案对我不起作用。mod_fcgid配置AddHandlerfcgid-script.fcgiFcgidIPCDir/var/run/mod_fcgid/FcgidProcessTableFile/var/run/mod_fcgid/fcgid_shmFcgidIdleTimeout60FcgidProcessLifeTime120FcgidMaxRequestsPerProcess500FcgidMaxProcesses150FcgidMaxProcesse

PHP 和 mod_fcgid : ap_pass_brigade failed in handle_request_ipc function

这在https://stackoverflow.com/a/12686252/219116之前已经被询问和回答过但是,那里的解决方案对我不起作用。mod_fcgid配置AddHandlerfcgid-script.fcgiFcgidIPCDir/var/run/mod_fcgid/FcgidProcessTableFile/var/run/mod_fcgid/fcgid_shmFcgidIdleTimeout60FcgidProcessLifeTime120FcgidMaxRequestsPerProcess500FcgidMaxProcesses150FcgidMaxProcesse