[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;
> +}
> +