The OpenNET Project / Index page

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

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

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

tmpnam_r (3)
  • >> tmpnam_r (3) ( Linux man: Библиотечные вызовы )
  •  

    NAME

    tmpnam, tmpnam_r - create a name for a temporary file
     
    

    SYNOPSIS

    #include <stdio.h>
    
    char *tmpnam(char *s);
    
     

    DESCRIPTION

    The tmpnam() function returns a pointer to a string that is a valid filename, and such that a file with this name did not exist at some point in time, so that naive programmers may think it a suitable name for a temporary file. If the argument s is NULL this name is generated in an internal static buffer and may be overwritten by the next call to tmpnam(). If s is not NULL, the name is copied to the character array (of length at least L_tmpnam) pointed to by s and the value s is returned in case of success.

    The pathname that is created, has a directory prefix P_tmpdir. (Both L_tmpnam and P_tmpdir are defined in <stdio.h>, just like the TMP_MAX mentioned below.)  

    RETURN VALUE

    The tmpnam() function returns a pointer to a unique temporary filename, or NULL if a unique name cannot be generated.  

    ERRORS

    No errors are defined.  

    CONFORMING TO

    SVr4, 4.3BSD, C89, C99, POSIX.1-2001. POSIX.1-2008 marks tmpnam() as obsolete.  

    NOTES

    The tmpnam() function generates a different string each time it is called, up to TMP_MAX times. If it is called more than TMP_MAX times, the behavior is implementation defined.

    Although tmpnam() generates names that are difficult to guess, it is nevertheless possible that between the time that tmpnam() returns a pathname, and the time that the program opens it, another program might create that pathname using open(2), or create it as a symbolic link. This can lead to security holes. To avoid such possibilities, use the open(2) O_EXCL flag to open the pathname. Or better yet, use mkstemp(3) or tmpfile(3).

    Portable applications that use threads cannot call tmpnam() with a NULL argument if either _POSIX_THREADS or _POSIX_THREAD_SAFE_FUNCTIONS is defined.

    A POSIX draft proposed to use a function tmpnam_r() defined by

    char *
    tmpnam_r(char *s)
    {
        return s ? tmpnam(s) : NULL;
    }
    

    apparently as a warning not to use NULL. A few systems implement it. To get a glibc prototype for this function, define _SVID_SOURCE or _BSD_SOURCE before including <stdio.h>.  

    BUGS

    Never use this function. Use mkstemp(3) or tmpfile(3) instead.  

    SEE ALSO

    mkstemp(3), mktemp(3), tempnam(3), tmpfile(3)  

    COLOPHON

    This page is part of release 3.14 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.


     

    Index

    NAME
    SYNOPSIS
    DESCRIPTION
    RETURN VALUE
    ERRORS
    CONFORMING TO
    NOTES
    BUGS
    SEE ALSO
    COLOPHON


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




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

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