vsnprintf

Formats data under control of the format control string, using a variable argument list.

Library:LibC
Classification:ANSI
Service:File and Directory I/O

Syntax

  #include <stdio.h> 
   
  int vsnprintf (
     char         *buf,
     size_t        n,
     const char   *format,
     va_list       arg);
  

Parameters

buf

(OUT) Points to the buffer to which to write the result.

n

(IN) Specifies the maximum number of characters to write.

format

(IN) Points to the format control string. See Print Format Control Strings.

arg

(IN) Specifies a variable argument list for conversion specifiers. The number of arguments in the list is determined by the format string.

Return Values

If successful, returns the number of characters written into the buffer, not counting the null-terminating character. Otherwise, returns a negative value and sets errno to one of the following:

Decimal

Constant

Description

4

EBADF

The file descriptor is not a valid file descriptor open for writing.

5

ENOMEM

Insufficient storage space is available.

9

EINVAL

There are insufficient arguments.

12

ENOSPC

No free space remains on the device containing the file.

24

EAGAIN

The O_NONBLOCK flag is set for the file descriptor, and the process cannot immediately perform the write operation.

25

ENXIO

A request was made of a nonexistent device, or the request was outside the capabilities of the device.

28

EIO

A physical I/O error has occurred.

32

EPIPE

An attempt was made to write to a pipe or FIFO that is not open for reading by any process.

63

EINTR

A signal interrupted the write operation.

71

EFBIG

An attempt was made to write to a file that exceeds the maximum file size.

101

EILSEQ

A wide-character code that does not correspond to a valid character has been deleted.

Remarks

The vsnprintf function formats data under control of the format control string and writes the result to buf. The vsnprintf function is equivalent to vsprintf, with the addition of the n parameter to specify the maximum number of characters to write.

See Also