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

FreeBSD Manual Pages

  
 
  

home | help
POSIX_SPAWN_FILE_ACTIONS(3) Library Functions ManuaPOSIX_SPAWN_FILE_ACTIONS(3)

NAME
       posix_spawn_file_actions_addopen,     posix_spawn_file_actions_adddup2,
       posix_spawn_file_actions_addclose,
       posix_spawn_file_actions_addclosefrom_np,
       posix_spawn_file_actions_addchdir_np,
       posix_spawn_file_actions_addfchdir_np --	add open, dup2,	close,	close-
       from, or	chdir/fchdir actions to	spawn file actions object

LIBRARY
       Standard	C Library (libc, -lc)

SYNOPSIS
       #include	<spawn.h>

       int
       posix_spawn_file_actions_addopen(posix_spawn_file_actions_t * file_actions,
	   int fildes, const char *restrict path, int oflag, mode_t mode);

       int
       posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t * file_actions,
	   int fildes, int newfildes);

       int
       posix_spawn_file_actions_addclose(posix_spawn_file_actions_t * file_actions,
	   int fildes);

       int
       posix_spawn_file_actions_addclosefrom_np(posix_spawn_file_actions_t * file_actions,
	   int from);

       int
       posix_spawn_file_actions_addchdir_np(posix_spawn_file_actions_t *restrict file_actions,
	   const char *restrict	path);

       int
       posix_spawn_file_actions_addfchdir_np(posix_spawn_file_actions_t	* file_actions,
	   int fildes);

DESCRIPTION
       These  functions	 add an	open, dup2 or close action to a	spawn file ac-
       tions object.

       A spawn file actions object is of type posix_spawn_file_actions_t  (de-
       fined  in  <spawn.h>)  and is used to specify a series of actions to be
       performed by a posix_spawn() or posix_spawnp() operation	 in  order  to
       arrive  at the set of open file descriptors for the child process given
       the set of open file descriptors	of the parent.

       A  spawn	 file  actions	object,	 when  passed  to   posix_spawn()   or
       posix_spawnp(),	specify	 how  the  set of open file descriptors	in the
       calling process is transformed into a set of potentially	open file  de-
       scriptors  for  the  spawned process.  This transformation is as	if the
       specified sequence of actions was performed exactly once, in  the  con-
       text  of	the spawned process (prior to execution	of the new process im-
       age), in	the order in which the actions were added to the object; addi-
       tionally, when the new process image is executed, any  file  descriptor
       (from  this  new	 set) which has	its FD_CLOEXEC flag set	is closed (see
       posix_spawn()).

       The posix_spawn_file_actions_addopen() function adds an open action  to
       the  object  referenced	by  file_actions that causes the file named by
       path to be opened (as if

	     open(path,	oflag, mode)

       had been	called,	and the	returned file descriptor, if not  fildes,  had
       been  changed  to fildes) when a	new process is spawned using this file
       actions object.	If fildes was already an open file descriptor,	it  is
       closed before the new file is opened.

       The     string	  described    by    path    is	   copied    by	   the
       posix_spawn_file_actions_addopen() function.

       The posix_spawn_file_actions_adddup2() function adds a dup2  action  to
       the  object  referenced by file_actions that causes the file descriptor
       fildes to be duplicated as newfildes (as	if

	     dup2(fildes, newfildes)

       had been	called)	when a new process is spawned using this file  actions
       object,	except	that the FD_CLOEXEC flag for newfildes is cleared even
       if fildes is equal to newfildes.	 The difference	from dup2() is	useful
       for passing a particular	file descriptor	to a particular	child process.

       The posix_spawn_file_actions_addclose() function	adds a close action to
       the  object  referenced by file_actions that causes the file descriptor
       fildes to be closed (as if

	     close(fildes)

       had been	called)	when a new process is spawned using this file  actions
       object.

       The  posix_spawn_file_actions_addclosefrom_np()	function  adds a close
       action to close all file	descriptors numerically	equal or greater  then
       the  argument from.  For	each open file descriptor, logically the close
       action is performed, and	any possible errors encountered	are ignored.

       The	       posix_spawn_file_actions_addchdir_np()		   and
       posix_spawn_file_actions_addfchdir_np()	functions add a	change current
       directory action	to the object referenced by file_actions that  affects
       actions	(opens	with  relative path) performed after the operation, in
       the order of insertion into the file_actions object.  It	also sets  the
       working	   directory	 for	 the	 spawned     program.	   The
       posix_spawn_file_actions_addchdir_np() function takes the path  to  set
       as the working directory, while posix_spawn_file_actions_addfchdir_np()
       takes the directory file	descriptor.

RETURN VALUES
       Upon  successful	completion, these functions return zero; otherwise, an
       error number is returned	to indicate the	error.

ERRORS
       These functions fail if:

       [EBADF]		  The value specified by fildes	or newfildes is	 nega-
			  tive.

       [ENOMEM]		  Insufficient	memory exists to add to	the spawn file
			  actions object.

SEE ALSO
       close(2),	  dup2(2),	    open(2),	       posix_spawn(3),
       posix_spawn_file_actions_destroy(3),  posix_spawn_file_actions_init(3),
       posix_spawnp(3)

STANDARDS
       The				   posix_spawn_file_actions_addopen(),
       posix_spawn_file_actions_adddup2()				   and
       posix_spawn_file_actions_addclose()  functions  conform	to  IEEE   Std
       1003.1-2001   ("POSIX.1"),  with	 the  exception	 of  the  behavior  of
       posix_spawn_file_actions_adddup2() if  fildes  is  equal	 to  newfildes
       (clearing  FD_CLOEXEC).	A future update	of the Standard	is expected to
       require this behavior.

       The			       posix_spawn_file_actions_addchdir_np(),
       posix_spawn_file_actions_addfchdir_np(),				   and
       posix_spawn_file_actions_addclosefrom_np() functions  are  non-standard
       functions  implemented  after  the  similar  functionality  provided by
       glibc.

HISTORY
       The				   posix_spawn_file_actions_addopen(),
       posix_spawn_file_actions_adddup2()				   and
       posix_spawn_file_actions_addclose()   functions	 first	 appeared   in
       FreeBSD	    8.0.       The     posix_spawn_file_actions_addchdir_np(),
       posix_spawn_file_actions_addfchdir_np(),				   and
       posix_spawn_file_actions_addclosefrom_np()  functions first appeared in
       FreeBSD 13.1.

AUTHORS
       Ed Schouten <ed@FreeBSD.org>

FreeBSD	14.3			  May 9, 20POSIX_SPAWN_FILE_ACTIONS_ADDOPEN(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=posix_spawn_file_actions_addclosefrom_np&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help