unshare - phpMan

Command: man perldoc info search(apropos)  


UNSHARE(2)                 Linux Programmer's Manual                UNSHARE(2)



NAME
       unshare - disassociate parts of the process execution context

SYNOPSIS
       #include <sched.h>

       int unshare(int flags);

DESCRIPTION
       unshare()  allows a process to disassociate parts of its execution context that are
       currently being shared with other processes.  Part of the execution  context,  such
       as  the namespace, is shared implicitly when a new process is created using fork(2)
       or vfork(2), while other parts, such as virtual memory, may be shared  by  explicit
       request when creating a process using clone(2).

       The  main  use  of  unshare() is to allow a process to control its shared execution
       context without creating a new process.

       The flags argument is a bit mask that specifies which parts of the  execution  con-
       text should be unshared.  This argument is specified by ORing together zero or more
       of the following constants:

       CLONE_FILES
              Reverse the effect of the  clone(2)  CLONE_FILES  flag.   Unshare  the  file
              descriptor  table,  so  that  the  calling process no longer shares its file
              descriptors with any other process.

       CLONE_FS
              Reverse the effect of the  clone(2)  CLONE_FS  flag.   Unshare  file  system
              attributes, so that the calling process no longer shares its root directory,
              current directory, or umask attributes with any other  process.   chroot(2),
              chdir(2), or umask(2)

       CLONE_NEWNS
              This flag has the same effect as the clone(2) CLONE_NEWNS flag.  Unshare the
              namespace, so that the calling process has a private copy of  its  namespace
              which  is not shared with any other process.  Specifying this flag automati-
              cally implies CLONE_FS as well.

       If flags is specified as zero, then unshare() is a no-op; no changes  are  made  to
       the calling process's execution context.

RETURN VALUE
       On  success, zero returned. On failure, -1 is returned and errno is set to indicate
       the error.

ERRORS
       EPERM  flags specified CLONE_NEWNS but the calling process was not privileged  (did
              not have the CAP_SYS_ADMIN capability).

       ENOMEM Cannot  allocate  sufficient  memory  to copy parts of caller's context that
              need to be unshared.

       EINVAL An invalid bit was specified in flags.

CONFORMING TO
       The unshare() system call is Linux-specific.

NOTES
       The unshare() system call was added to Linux in kernel 2.6.16.

       Not all of the process attributes that can be shared when a new process is  created
       using  clone(2)  can  be  unshared  using  unshare().   In particular, as at kernel
       2.6.16, unshare() does not implement flags that reverse the effects  of  CLONE_SIG-
       HAND, CLONE_SYSVSEM, CLONE_THREAD, or CLONE_VM.  Such functionality may be added in
       the future, if required.

SEE ALSO
       clone(2), fork(2), vfork(2), Documentation/unshare.txt



Linux 2.6.16                      2005-03-10                        UNSHARE(2)

Generated by $Id: phpMan.php,v 4.49 2006/02/26 13:18:18 chedong Exp $ Author: Che Dong
On Apache/1.3.37 (Unix) mod_throttle/3.1.2 FrontPage/5.0.2.2635 mod_psoft_traffic/0.2 mod_ssl/2.8.28 OpenSSL/0.9.8b
Under GNU General Public License
2009-01-07 20:44 @38.103.63.55 Crawled by CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
Valid XHTML 1.0!Valid CSS!