genericopenlibs/cstdlib/LSTDIO/PRINTF.C
author Pat Downey <patd@symbian.org>
Tue, 13 Jul 2010 17:51:34 +0100
branchRCL_3
changeset 43 97e3c206731f
parent 0 e4d67989cc36
permissions -rw-r--r--
Merge fixes for bug 2603 and bug 3123.

/*
* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
*
*/



#include <_ansi.h>
#include <stdio_r.h>

#include <stdarg.h>

/**
A reentrant version of printf().
*/
EXPORT_C int
_printf_r (struct _reent *ptr, const char *fmt, ...)
{
  int ret;
  va_list ap;

  va_start (ap, fmt);
  ret = _vfprintf_r (ptr, _stdout_r(ptr), fmt, ap);
  va_end (ap);
  return ret;
}

#ifndef _REENT_ONLY

/**
Print formatted data to stdout.
Prints to standard output a sequence of arguments formatted as the format argument specifies.
@return On success, the total number of characters printed is returned.
On error, a negative number is returned.
@param fmt String that contains the text to be printed.
Optionally it can contain format tags that are substituted 
by the values specified in subsequent argument(s) and formatted as requested.
*/
EXPORT_C int
printf (const char *fmt, ...)
{
  int ret;
  va_list ap;

  va_start (ap, fmt);
  ret = vfprintf (__stdout(), fmt, ap);
  va_end (ap);
  return ret;
}

#endif /* ! _REENT_ONLY */