Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ vprintf(3s) — AIX PS/2 1.2.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

printf, fprintf, sprintf, NLprintf, NLfprintf, NLsprintf, wsprintf



VPRINTF(3s,L)               AIX Technical Reference               VPRINTF(3s,L)



-------------------------------------------------------------------------------
vprintf, vfprintf, vsprintf, NLvprintf, NLvfprintf, NLvsprintf



PURPOSE

Formats a varargs parameter list for output.

LIBRARY

Standard I/O Library (libc.a)

SYNTAX

#include <stdio.h>
#include <varargs.h>




              int vprintf (format, argp)  int NLvprintf (format, argp)
              char *format;               char *format;
              va_list argp;               va_list argp;

              int vfprintf (stream, formatintrNLvfprintf (stream, format, argp)
              FILE *stream;               FILE *stream;
              char *format;               char *format;
              va_list argp;               va_list argp;

              int vsprintf (s, format, argNLvsprintf (s, format, argp)
              char *s, *format;           char *s, *format;
              va_list argp;               va_list argp;



DESCRIPTION

The vprintf, vfprintf, and vsprintf subroutines format and write varargs
parameter lists.  They are the same as the printf, fprintf, and sprintf
subroutines, respectively, except that they are not called with a variable
number of parameters.  Instead, they are called with a parameter list pointer
as defined by "varargs."

The NLvprintf, NLvfprintf, and NLvsprintf subroutines are provided for backward
compatibility and behave exactly like the vprintf, vfprintf, and vsprintf
subroutines respectively.

EXAMPLE

The following example demonstrates how the vfprintf subroutine could be used to
write an error routine.



Processed November 7, 1990       VPRINTF(3s,L)                                1





VPRINTF(3s,L)               AIX Technical Reference               VPRINTF(3s,L)




  #include <stdio.h>
  #include <varargs.h>

  /* error should be called with the syntax:       */
  /* error(routine_name, format [, value,...]); */

  /*VARARGS0*/

  void error(va_alist)
  va_dcl
  /*
  **  Note that the function name and format arguments
  **  cannot be separately declared because of the
  **  definition of varargs.
  */
  {
     va_list args;
     char *fmt;

     va_start(args);
     /*
     ** Display the name of the function that called error
     */
     (void) fprintf(stderr, "ERROR in %s: ", va_arg(args, char *));
     /*
     ** Display the remainder of the message
     */
     fmt = va_arg(args, char *);
     (void) vfprintf(std err, fmt, args);
     va_end(args);
     (void) abort();
  }

ERROR CONDITIONS

The vprintf subroutine fails if one or more of the following are true:

EAGAIN    The O_NONBLOCK flag is set for the file descriptor underlying stream
          and the process is delayed in the write operation.

EBADF     The file descriptor underlying stream is not a valid file descriptor
          open for writing.

EFBIG     An attempt was made to write to a file that exceeds the process's
          file size limit or the maximum file size.

EINTR     The write operation was terminated due to the receipt of a signal,
          and either no data was transferred or the implementation does not
          report partial transfers for this file.





Processed November 7, 1990       VPRINTF(3s,L)                                2





VPRINTF(3s,L)               AIX Technical Reference               VPRINTF(3s,L)



EIO       The implementation supports job control, the process is a member of a
          background process group attempting to write to its controlling
          terminal, TOSTOP is set, the process is neither ignoring nor blocking
          SIGTTOU and the process group of the process is orphaned.

ENOSPC    There was no free space remaining on the device containing the file.

ENXIO     A request was made of a non-existent device, or the request was
          outside the capabilities of the device.

EPIPE     An attempt is made to write to a pipe or FIFO that is not open for
          reading by any process.  A SIGPIPE signal will also be sent to the
          process.

ENOMEM    Insufficient storage space is available.

EINVAL    There are insufficient arguments.

RELATED INFORMATION

In this book:  "printf, fprintf, sprintf, NLprintf, NLfprintf, NLsprintf,
wsprintf."

































Processed November 7, 1990       VPRINTF(3s,L)                                3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026