1

这可能是一个非常简单的问题:如何使用 Apache Portable Runtime 库中的 apr_file_namedpipe_create() 函数来创建命名管道,然后使用该命名管道进行子父通信。子进程正在使用 apr_proc_create() 函数创建,它等待数据出现在 Apache/父进程发送的输入命名管道中。

我不确定要调用的 API 的顺序。我可以考虑这样做,但仍然感到困惑。

apr_procattr_t *attr;
apr_proc_t newproc;

const char *progname;
const char *args[100];

apr_file_namedpipe_create("/tmp/ipipe", 0666, p);
apr_procattr_create(&attr, p)
apr_procattr_io_set(attr, APR_CHILD_BLOCK, APR_CHILD_BLOCK, APR_CHILD_BLOCK)
apr_procattr_cmdtype_set(attr, APR_PROGRAM_PATH);
apr_proc_create(&newproc, progname, args, NULL, attr, p);

如何指定子进程对来自其父进程/Apache 的所有输入使用“/tmp/ipipe”?在子进程中,我正在从 /tmp/ipipe' 读取数据,但这是否足够?或者我还需要在这里指定子进程将使用该命名管道进行输入?在这种情况下,apr_procattr_io_set() 的参数是什么,或者还有其他一些功能可以做到这一点?

APR 的文档/示例代码似乎很少,所以我无法用谷歌搜索它。有什么提示或建议吗?

我在 Linux 环境中运行。

4

0 回答 0