【问题标题】:How can I share an array of structs between a parent and child process in C?如何在 C 中的父进程和子进程之间共享结构数组?
【发布时间】:2017-03-15 00:31:07
【问题描述】:

我正在通过管道创建一个简单的客户端/服务器接口。当服务器收到来自客户端的请求时,它会分叉创建处理程序进程。

我现在正在做一个粗略的实现,所以大部分数据都保存在一个结构数组中:

struct data{
    int value;
    char* description;
}

struct data events[100];

我需要在子进程完成其工作(包括编辑数组中的结构以使客户端传入值和描述)后,将此数据发送回服务器并刷新服务器的 events[] 数组,因此当它再次从另一个请求中分叉时,该分叉在数组中具有正确的数据。

我可以用什么来做到这一点?

【问题讨论】:

    标签: c arrays struct fork named-pipes


    【解决方案1】:

    Shared memory 是首先想到的。

    或者你可以把钻头塞到你已经声称拥有的管道上。

    【讨论】:

    • 如何通过管道发送结构数组?
    • @Ajv2324: write(pipe_fd, array, sizeof(array[0]) * num_items);
    猜你喜欢
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 2023-03-20
    • 2012-05-19
    相关资源
    最近更新 更多