TEMPNAM(3)

NOME
tempnam - cria um nome para um arquivo temporário

SINÓPSE
#include <stdio.h>

char *tempnam(const char *dir, const char *pfx);

DESCRIÇÃO
A função tempnam() retorna um indicador para uma seqüencia que é um nome de arquivo válido, e que tal arquivo com este nome não existiam quando tempnam() verificou. O sufixo do nome de arquivo do caminho gerado começará com pfx onde pfx é uma seqüencia não-NULA com no máximo cinco bytes. A parte do prefixo do diretório gerado é necessário para ser `apropriado' (o que frequentemente implica em poder ser escrito). Tentativas de encontrar um diretório apropriado, percorrem os seguintes passos: (i) se a varíavel de sistema TMPDIR existir e tiver o nome para o diretório apropriado, este será usado. (ii) De outro modo, se o argumento dir é não-NULO e apropriado, ele será utilizado. (iii) Se não, P_tmpdir (como definido em <stdio.h>) é utilizado quando apropriado. (iv) Finalmente um diretório com um implementação definida pode ser utilizado.

VALORES RETORNADOS
A função tempnam() retorna o indicador para um nome de arquivo único, ou 'NULO' se um nome único não puder ser gerado.

ERROS

ENOMEM
    Alocação de armazanagem falhou.

NOTAS
SUSv2 não menciona a utilização de TMPDIR; glibc usará somente quando o programa não é suid. SVID2 especifica que o diretório utilizado sob (iv) é /tmp. SVID2 especifica que a seqüencia retornada por tempnam() estava alocada utilizando malloc(3) e portanto pode ser liberada por free(3).

A função tempnam() gera uma seqüencia a cada vez que é chamada, até TMP_MAX (definido em <stdio.h>) vezes. Se for chamado mais do que TMP_MAX vezes, o comportamento é definido pela implementação.

No caso do argumento pfx tiver tamanho maior do que cinco, glibc utilizará os primeiros cinco bytes. Na falha de encontrar um nome único, glibc retornará EEXIST.

PROBLEMAS
O significado preciso de 'apropriado' não está definido; Não é especificado como o acesso a um diretório é determinado. Nunca use esta função. Use mkstemp(3) no lugar.

DE ACORDO COM
SVID 2, BSD 4.3.

VEJA TAMBÉM
mktemp(3), mkstemp(3), tmpfile(3), tmpnam(3).

TRADUZIDO POR LPD-BR em 08/06/2001.

  Tradução:
Daniel Chicayban <daniel@chicayban.com.br>

  Revisão.:
Ricardo C.O.Freitas <english.quest@best-service.com>