• [^] # Re: Google n'est pas ton ami ?

    Posté par . En réponse au message conversion d'un entier en chaîne?. Évalué à 1.

    on peut facilement recoder asprintf, et au passage, on peut meme l'ameliorer au niveau de l'API.

    char* strdup_(char* input)
    {
    char* ret = strdup(input);
    if (ret == NULL) {
    fprintf(stderr, "Out of memory, exiting - input was %s.\n", input);
    exit(EXIT_FAILURE);
    }
    return ret;
    }

    char * vasprintf_(const char *msg, va_list args)
    {
    char s[8192];
    vsnprintf(s, sizeof(s), msg, args);
    return strdup(s);
    }

    // _GNU_SOURCE's asprintf like, but
    // - doesn't need _GNU_SOURCE
    // - returns allocated string
    // - never returns NULL (prints failure and exit on out of memory)
    char * asprintf_(const char *msg, ...)
    {
    char * results;
    va_list arg_ptr;
    va_start(arg_ptr, msg);
    results = vasprintf_(msg, arg_ptr);
    va_end(arg_ptr);
    return results;
    }