The OpenNET Project / Index page

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

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

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

close (2)
  • close (2) ( Solaris man: Системные вызовы )
  • >> close (2) ( FreeBSD man: Системные вызовы )
  • close (2) ( Русские man: Системные вызовы )
  • close (2) ( Linux man: Системные вызовы )
  • close (3) ( POSIX man: Библиотечные вызовы )
  • close (7) ( Linux man: Макропакеты и соглашения )
  • close (9) ( Solaris man: Ядро )

  • BSD mandoc
     

    NAME

    
    
    close
    
     - delete a descriptor
    
     
    

    LIBRARY

    Lb libc
    
     
    

    SYNOPSIS

       #include <unistd.h>
    int close (int d);
     

    DESCRIPTION

    The close ();
    system call deletes a descriptor from the per-process object reference table. If this is the last reference to the underlying object, the object will be deactivated. For example, on the last close of a file the current seek pointer associated with the file is lost; on the last close of a socket(2) associated naming information and queued data are discarded; on the last close of a file holding an advisory lock the lock is released (see further flock(2)). However, the semantics of System V and St -p1003.1-88 dictate that all fcntl(2) advisory record locks associated with a file for a given process are removed when any file descriptor for that file is closed by that process.

    When a process exits, all associated file descriptors are freed, but since there is a limit on active descriptors per processes, the close ();
    system call is useful when a large quantity of file descriptors are being handled.

    When a process forks (see fork(2)), all descriptors for the new child process reference the same objects as they did in the parent before the fork. If a new process is then to be run using execve(2), the process would normally inherit these descriptors. Most of the descriptors can be rearranged with dup2(2) or deleted with close ();
    before the execve(2) is attempted, but if some of these descriptors will still be needed if the execve fails, it is necessary to arrange for them to be closed if the execve succeeds. For this reason, the call ``fcntl(d, F_SETFD, FD_CLOEXEC) '' is provided, which arranges that a descriptor will be closed after a successful execve; the call ``fcntl(d, F_SETFD, 0) '' restores the default, which is to not close the descriptor.  

    RETURN VALUES

    Rv -std close  

    ERRORS

    The close ();
    system call will fail if:

    Bq Er EBADF
    The Fa d argument is not an active descriptor.
    Bq Er EINTR
    An interrupt was received.
    Bq Er ENOSPC
    The underlying object did not fit, cached data was lost.
    Bq Er ECONNRESET
    The underlying object was a stream socket that was shut down by the peer before all pending data was delivered.

     

    SEE ALSO

    accept(2), execve(2), fcntl(2), flock(2), open(2), pipe(2), socket(2), socketpair(2)  

    STANDARDS

    The close ();
    system call is expected to conform to St -p1003.1-90 .  

    HISTORY

    The close ();
    function appeared in AT&T System v7 .


     

    Index

    NAME
    LIBRARY
    SYNOPSIS
    DESCRIPTION
    RETURN VALUES
    ERRORS
    SEE ALSO
    STANDARDS
    HISTORY


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




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

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