Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
iv_popen(3)		  ivykis programmer's manual		   iv_popen(3)

       IV_POPEN_REQUEST_INIT,  iv_popen_request_submit,	iv_popen_request_close
       - popen(3) for ivykis applications

       #include	<iv_popen.h>

       struct iv_popen_request {
	       char	       *file;
	       char	       **argv;
	       char	       *type;

       void IV_POPEN_REQUEST_INIT(struct iv_popen_request *this);
       int iv_popen_request_submit(struct iv_popen_request *this);
       void iv_popen_request_close(struct iv_popen_request *this);

       iv_popen	provides ivykis(3) applications	with an	 asynchronous  version
       of popen(3) that	is integrated with the ivykis event loop.

       After  initialising a struct iv_popen_request object using IV_POPEN_RE-
       QUEST_INIT and assigning	its ->file and ->argv and ->type members,  one
       can  call  iv_popen_request_submit  on  it  to fork off a child process
       which will call execvp(2) on ->file and ->argv,	while  in  the	parent
       process	returning  a  file descriptor that is connected	to the child's
       standard	input (if ->type equals	"w") or	 standard  output  (if	->type
       equals "r").

       When  the  application  is  done	with the child process,	it should call
       iv_popen_request_close, and  close  the	file  descriptor  returned  by
       iv_popen_request_submit (this is	not done automatically).

       iv_popen	will continue to monitor the child's process state while it is
       running,	by registering an iv_wait(3) interest for its process ID.

       If the child process has	not yet	terminated when	iv_popen_request_close
       is  called, iv_popen will attempt to terminate the child	process	in the
       background by sending it	a series of SIGTERM and	SIGKILL	signals.

       iv_popen_request_close  must  be	 called	 from  the  same  thread  that
       iv_popen_request_submit was called from on this object.

       ivykis(3), iv_wait(3), execvp(2), popen(3)

ivykis				  2010-09-04			   iv_popen(3)


Want to link to this manual page? Use this URL:

home | help