jld*_*ont 2 linux communication process
实现与Linux进程的双向通信的可靠方法是什么?
我看到popen似乎不同时支持"r"和"w"访问......或者至少暗示的是:
The type argument is a pointer to a null-terminated string which must be either 'r' for reading or 'w' for writing.
(我现在很想念Erlang)
Unix域套接字是你的朋友.
Unix域套接字或IPC套接字(进程间通信套接字)是类似于Internet套接字的数据通信端点,但不使用网络协议进行通信.它在POSIX操作系统中用于进程间通信.
您为通信通道保留了一个名称,例如/myapp/ipc,然后两个进程都使用UNIX套接字打开该地址:
struct sockaddr_un local;
int len;
s = socket(AF_UNIX, SOCK_STREAM, 0);
local.sun_family = AF_UNIX;
strcpy(local.sun_path, "/myapp/ipc");
len = strlen(local.sun_path) + sizeof(local.sun_family);
bind(s, (struct sockaddr *)&local, len);
Run Code Online (Sandbox Code Playgroud)
现在你可以使用listen或connect或任何插座家里人.这是一些工作,但是在Linux上实现IPC的最佳方式.
由于Erlang只是一种很好的语言,用于指定通过命名管道(进程)进行通信的小型服务器(进程),因此该模型应该让您感觉舒服.
| 归档时间: |
|
| 查看次数: |
1711 次 |
| 最近记录: |