mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

TMPNAM(3S)                                           TMPNAM(3S)

НАЗВАНИЕ 
        tmpnam, tempnam - создание имен временных файлов

СИНТАКСИС 
        #include 
        
        char *tmpnam (s)
        char *s;
        
        char *tempnam (dir, pfx)
        char *dir, *pfx;

ОПИСАНИЕ 
        С помощью этих функций создаются имена,  которые  можно
        без опасений использовать для именования временных фай-
        лов.

        Функция tmpnam всегда  образует  имя  файла,  используя
        маршрутный префикс, определяемый константой P_tmpdir во
        включаемом  файле  .  Если  указатель s пустой
        (равен NULL), то функция помещает результат во внутрен-
        нюю статическую область и возвращает адрес этой  облас-
        ти.  При следующем вызове tmpnam содержимое статической
        области изменится. Если s не равно NULL, то его  значе-
        ние  рассматривается  как  адрес массива длины не менее
        L_tmpnam байт, где L_tmpnam - константа, определенная в
        ; функция помещает результат в этот  массив  и
        возвращает s.

        Функция tempnam дает пользователю возможность  выбирать
        каталог. Аргумент dir указывает на имя каталога, в  ко-
        тором нужно создать файл. Если dir равен NULL или  ссы-
        лается на цепочку символов, не являющуюся именем подхо-
        дящего каталога, то имя строится с использованием конс-
        танты P_tmpdir. Если и этот каталог недоступен,  в  ка-
        честве последнего шанса будет использован /tmp. Указан-
        ная последовательность действий игнорируется, если  оп-
        ределена переменная окружения TMPDIR; именно ее  значе-
        ние задает имя каталога временных файлов.

        Во многих случаях предпочтительны имена файлов, начина-
        ющиеся определенной последовательностью  символов.  Для
        создания таких имен предусмотрен аргумент pfx. Этот ар-
        гумент может иметь значение NULL или  быть  ссылкой  на
        цепочку длиной до 5 символов, которая должна  использо-
        ваться в качестве первых символов имени временного фай-
        ла.

        Функция tempnam вызывает функцию malloc(3C) для получе-
        ния области памяти под конструируемое имя, и возвращает
        ссылку на эту область. Таким образом, значение указате-
        ля, возвращаемого функцией tempnam, может служить аргу-
        ментом функции free [см. malloc(3C)]. Если  tempnam  по
        каким-либо причинам не может возвратить  ожидаемый  ре-
        зультат (например, неудачно завершилась функция  malloc
        или не удалось найти подходящий каталог), то  возвраща-
        ется пустой указатель.

ПРИМЕЧАНИЯ 
        При каждом обращении эти функции создают новое имя.

        Файлы,  созданные с помощью описанных функций и функций
        fopen(3S) или creat(2), являются  временными  только  в
        том  смысле, что они хранятся в каталоге, предназначен-
        ном для временного использования, и их имена уникальны.
        Для удаления этих файлов, когда в них отпала  необходи-
        мость,  пользователь  должен  применить системный вызов
        unlink(2).

СМ. ТАКЖЕ 
        creat(2), unlink(2), fopen(3S), malloc(3C), mktemp(3C),
        tmpfile(3S).

ОГРАНИЧЕНИЯ 
        При вызове более 17576 раз в одном процессе эти функции
        начнут циклически выдавать уже созданные ранее имена.

        В  промежутке между образованием имени файла и его отк-
        рытием другой процесс может создать файл с тем же  име-
        нем.  Этого  никогда не случится, если упомянутый "дру-
        гой" процесс создает файл с помощью описываемых функций
        или функции mktemp, а имена файлов выбираются так, что-
        бы дублирование по другим причинам было маловероятным.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк