This may be a very simple question: How to use apr_file_namedpipe_create() function from Apache Portable Runtime library to create a named pipe, and then use that named pipe for child-parent communication. The child process is being created using apr_proc_create() function and it waits for the data to appear in the input-named pipe sent by the Apache/parent process.
I am not sure about the sequence of the APIs to call. I can think of doing this way but still confused.
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);
How can I specify that child process to use '/tmp/ipipe' for all input from its parent process/Apache? In the child process I am reading from /tmp/ipipe', but is that enough? Or I need to specify here as well that child process will use that named pipe for input? What would be the parameters for apr_procattr_io_set() in that case or there are some other function to do this?
APR appears to have very little documentation/sample codes, so I was unable to google it. Any hints or suggestions?
I am running on Linux environment.