Пример #1
0
PvaException::PvaException(const char* message, va_list messageArgs) :
    std::exception(),
    error(),
    errorCode(GenericErrorCode)
{
    char messageBuffer[MaxMessageLength];
    epicsVsnprintf(messageBuffer, MaxMessageLength, message, messageArgs);
    error = std::string(messageBuffer);
}
Пример #2
0
InvalidState::InvalidState(const char* message, ...) :
    PvaException()
{
    va_list messageArgs;
    va_start(messageArgs, message);
    char messageBuffer[MaxMessageLength];
    epicsVsnprintf(messageBuffer, MaxMessageLength, message, messageArgs);
    setMessage(std::string(messageBuffer));
    va_end(messageArgs);
}
Пример #3
0
int epicsShareAPI epicsSnprintf (char *str, size_t len, const char *fmt, ...)
{
    int rtn;
    va_list pvar;

    va_start (pvar, fmt);
    rtn = epicsVsnprintf (str, len, fmt, pvar);
    va_end (pvar);
    return (rtn);
}
Пример #4
0
epicsShareFunc int epicsShareAPI epicsSnprintf(
    char *str, size_t size, const char *format, ...)
{
    int nchars;
    va_list pvar;

    va_start(pvar,format);
    nchars = epicsVsnprintf(str,size,format,pvar);
    va_end (pvar);
    return(nchars);
}
Пример #5
0
/*
 * vsnprintf with truncation message
 */
static int tvsnPrint(char *str, size_t size, const char *format, va_list ap)
{
    static const char tmsg[] = "<<TRUNCATED>>\n";
    int nchar = epicsVsnprintf(str, size, format ? format : "", ap);

    if (nchar >= size) {
        if (size > sizeof tmsg)
            strcpy(str + size - sizeof tmsg, tmsg);
        nchar = size - 1;
    }
    return nchar;
}
Пример #6
0
char *allocSNPrintf(size_t N, const char *fmt, ...)
{
    char *mem = (char*)calloc(1, N);
    if(!mem)
        throw std::bad_alloc();

    va_list args;

    va_start(args, fmt);

    epicsVsnprintf(mem, N, fmt, args);

    va_end(args);

    mem[N-1] = '\0';

    return mem;
}