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

FreeBSD Manual Pages

  
 
  

home | help
xt_ff_popen(3)		   Library Functions Manual		xt_ff_popen(3)

NAME
       xt_ff_popen() - Create a	fast file stream connected to a	process

LIBRARY
       #include	<xtend/fast-file.h>
       -lxtend

SYNOPSIS
       xt_ff_t *xt_ff_popen(const char *cmd, int flags)

ARGUMENTS
       cmd     Full command to execute as the child, passed to sh(1)
       flags   Open mode flags passed to open(3)

DESCRIPTION
       xt_ff_popen(3)  creates a pipe for interprocess communication, runs the
       specified command, connecting the command's standard input or  standard
       output  to  the	pipe, and returning a pointer to a xt_ff_t object con-
       nected to the other end.

       It behaves much like popen(3),  except  that  it	 returns  a  fast-file
       xt_fffile_t  pointer  rather  than a standard I/O FILE pointer, and ac-
       cepts a full set	of open(3) flags rather	than the fopen(3) type strings
       "r", "w", etc.

       This allows the calling program to spawn	a child	process	and  read  its
       standard	 output	or write to its	standard input as easily as reading or
       writing a file.

       Note that  the  stream  may  be	closed	with  xt_ff_close(3).	Unlike
       popen(3),  which	 must  be  used	with pclose(3),	it is not necessary to
       call _xt_ff_pclose(3) directly.	The xt_ff_close(3) function  automati-
       cally determines	whether	the stream is attached to a pipe.

       The  xt_ff_t  system  is	 simpler than and much faster than traditional
       FILE on typical systems.	 It is intended	 for  processing  large	 files
       character-by-character,	where  low-level  block	I/O is not convenient,
       but FILE	I/O causes a bottleneck.

RETURN VALUES
       Pointer to a xt_ff_ile_t	object on success, NULL	otherwise

EXAMPLES
       xt_ff_t *instream;

       if ( (instream =	xt_ff_popen("xzcat file.xz", O_RDONLY))	== NULL	)
       {
	   fprintf(stderr, "Failed to read xzcat file.xz.n");
	   exit(EX_NOINPUT);
       }

       xt_ff_close(instream);

SEE ALSO
       xt_ff_open(3), xt_ff_close(3), popen(3),	open(3)

								xt_ff_popen(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=xt_ff_popen&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help