The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

vfork (2)
  • vfork (2) ( Solaris man: Системные вызовы )
  • >> vfork (2) ( FreeBSD man: Системные вызовы )
  • vfork (2) ( Русские man: Системные вызовы )
  • vfork (2) ( Linux man: Системные вызовы )
  • vfork (3) ( POSIX man: Библиотечные вызовы )

  • BSD mandoc
     

    NAME

    
    
    vfork
    
     - spawn new process in a virtual memory efficient way
    
     
    

    LIBRARY

    Lb libc
    
     
    

    SYNOPSIS

       #include <unistd.h>
    pid_t vfork (void);
     

    DESCRIPTION

    The vfork ();
    system call can be used to create new processes without fully copying the address space of the old process, which is horrendously inefficient in a paged environment. It is useful when the purpose of fork(2) would have been to create a new system context for an execve(2). The vfork ();
    system call differs from fork(2) in that the child borrows the parent's memory and thread of control until a call to execve(2) or an exit (either by a call to _exit2 or abnormally). The parent process is suspended while the child is using its resources.

    The vfork ();
    system call returns 0 in the child's context and (later) the pid of the child in the parent's context.

    The vfork ();
    system call can normally be used just like fork(2). It does not work, however, to return while running in the child's context from the procedure that called vfork ();
    since the eventual return from vfork ();
    would then return to a no longer existent stack frame. Be careful, also, to call _exit2 rather than exit(3) if you cannot execve(2), since exit(3) will flush and close standard I/O channels, and thereby mess up the parent processes standard I/O data structures. (Even with fork(2) it is wrong to call exit(3) since buffered data would then be flushed twice.)  

    RETURN VALUES

    Same as for fork(2).  

    SEE ALSO

    execve(2), _exit2, fork(2), rfork(2), sigvec(2), wait(2), exit(3)  

    HISTORY

    The vfork ();
    system call appeared in BSD 2.9  

    BUGS

    This system call will be eliminated when proper system sharing mechanisms are implemented. Users should not depend on the memory sharing semantics of vfork ();
    as it will, in that case, be made synonymous to fork(2).

    To avoid a possible deadlock situation, processes that are children in the middle of a vfork ();
    are never sent SIGTTOU or SIGTTIN signals; rather, output or ioctl(2) calls are allowed and input attempts result in an end-of-file indication.


     

    Index

    NAME
    LIBRARY
    SYNOPSIS
    DESCRIPTION
    RETURN VALUES
    SEE ALSO
    HISTORY
    BUGS


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру