[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Lost] [Patch] libc - mkstemp



Am Samstag, 16. August 2008 13:00:23 schrieb Antoine Kaufmann:
> ! libc: Fehlende deklaration fuer mktemp
> + libc: mkstemp()

> Index: trunk/src/modules/lib/posix/mktemp.c
> ===================================================================
> --- trunk.orig/src/modules/lib/posix/mktemp.c
> +++ trunk/src/modules/lib/posix/mktemp.c
> @@ -86,3 +87,31 @@ char* mktemp(char* template)
>
>      return template;
>  }
> +
> +/**
> + * Temporaere Datei erstellen. Dabei wird so lange gesucht, bis eine
> gefunden + * wird, die noch nicht existiert.
> + *
> + * @param template Vorlage fuer den Dateinamen. Sie wird von der Funktion
> + *                 abgeandert. Am schluss muessen mindestens 6 X stehen.
> + *
> + * @return Dateideskriptor
> + */
> +int mkstemp(char* template)
> +{
> +    int fd = -1;
> +    size_t len = strlen(template);
> +    char buf[len + 1];
> +
> +    while (fd == -1) {
> +        strcpy(buf, template);
> +        if (!mktemp(buf)) {

Du solltest template benutzen, nicht buf. Laut Kopfkommentar und Manpage wird 
template entsprechend verändert.

> +            return fd;
> +        }
> +
> +        fd = open(buf, O_EXCL | O_CREAT);
> +    }
> +
> +    return fd;
> +}
> +