5 More Discussions You Might Find Interesting
1. Solaris
I have a SPARC server with Solaris SPARC 10 OS installed
I am trying to compile source code from VLC media player and PHP 7 tarballs
However the stumbling block I encounter is that when I type in ./configure into my PUTTY terminal the GCC compiler tells me halfway through configuration that... (3 Replies)
Discussion started by: alphatron150
3 Replies
2. Shell Programming and Scripting
Hi,
anyone knows the perl search-and-replace expression for
strcpy (char * destination, const char * source ); to
strncpy ( char * destination, const char * source, size_t num ); ?
the first and second arguments are the same (destination and source), the difference being that strncpy... (1 Reply)
Discussion started by: ChaMeN
1 Replies
3. Shell Programming and Scripting
Dear all,
I am new to perl script and would need some help for my 1st script. I wrote a script to search sprintf(buf,"%s", sourcestring) and replace with snprintf(buf, sizeof(buf),"%s", sourcestring). As snprintf() requires an extra argument, so it is not a simple search-and-replace. I need to... (1 Reply)
Discussion started by: ChaMeN
1 Replies
4. Programming
Hi All,
I was reading the man page of snprintf function and it saids that snprintf adds a null terminator at the end of the string, but I remember once someone told me that snprintf doesn't guarantee the insertion of a null terminator character.
What do you think? Does anyone have experience... (4 Replies)
Discussion started by: lagigliaivan
4 Replies
5. Solaris
********************************
Following is not the real issue. The issue is with popen.
Plz continue forward with the thread to get a better picture.
********************************
Hi,
I am working on a customised ftp application. In it we have used sprintf to store a UNIX command... (7 Replies)
Discussion started by: diganta
7 Replies
vprintf(3C) Standard C Library Functions vprintf(3C)
NAME
vprintf, vfprintf, vsprintf, vsnprintf, vasprintf - print formatted output of a variable argument list
SYNOPSIS
#include <stdio.h>
#include <stdarg.h>
int vprintf(const char *format, va_list ap);
int vfprintf(FILE *stream, const char *format, va_list ap);
int vsprintf(char *s, const char *format, va_list ap);
int vsnprintf(char *s, size_t n, const char *format, va_list ap);
int vasprintf(char **ret, const char *format, va_list ap);
DESCRIPTION
The vprintf(), vfprintf(), vsprintf(), vsnprintf(), and vasprintf() functions are the same as printf(), fprintf(), sprintf(), snprintf(),
and asprintf(), respectively, except that instead of being called with a variable number of arguments, they are called with an argument
list as defined in the <stdarg.h> header. See printf(3C).
The <stdarg.h> header defines the type va_list and a set of macros for advancing through a list of arguments whose number and types may
vary. The argument ap to the vprint family of functions is of type va_list. This argument is used with the <stdarg.h> header file macros
va_start(), va_arg(), and va_end() (see stdarg(3EXT)). The EXAMPLES section below demonstrates the use of va_start() and va_end() with
vprintf().
The macro va_alist() is used as the parameter list in a function definition, as in the function called error() in the example below. The
macro va_start(ap, name), where ap is of type va_list and name is the rightmost parameter (just before ...), must be called before any
attempt to traverse and access unnamed arguments is made. The va_end(ap) macro must be invoked when all desired arguments have been
accessed. The argument list in ap can be traversed again if va_start() is called again after va_end(). In the example below, the error()
arguments (arg1, arg2, ...) are passed to vfprintf() in the argument ap.
RETURN VALUES
Refer to printf(3C).
ERRORS
The vprintf() and vfprintf() functions will fail if either the stream is unbuffered or the stream's buffer needed to be flushed and:
EFBIG The file is a regular file and an attempt was made to write at or beyond the offset maximum.
EXAMPLES
Example 1 Using vprintf() to write an error routine.
The following demonstrates how vfprintf() could be used to write an error routine:
#include <stdio.h>
#include <stdarg.h>
. . .
/*
* error should be called like
* error(function_name, format, arg1, ...);
*/
void error(char *function_name, char *format, ...)
{
va_list ap;
va_start(ap, format);
/* print out name of function causing error */
(void) fprintf(stderr, "ERR in %s: ", function_name);
/* print out remainder of message */
(void) vfprintf(stderr, format, ap);
va_end(ap);
(void) abort();
}
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability |Committed |
+-----------------------------+-----------------------------+
|MT-Level |See below. |
+-----------------------------+-----------------------------+
|Standard |See below. |
+-----------------------------+-----------------------------+
All of these functions can be used safely in multithreaded applications, as long as setlocale(3C) is not being called to change the locale.
See standards(5) for the standards conformance of vprintf(), vfprintf(), vsprintf(), and vsnprintf(). The vasprintf() function is modeled
on the one that appears in the FreeBSD, NetBSD, and GNU C libraries.
SEE ALSO
printf(3C), attributes(5), stdarg(3EXT), attributes(5), standards(5)
NOTES
The vsnprintf() return value when n = 0 was changed in the Solaris 10 release. The change was based on the SUSv3 specification. The previ-
ous behavior was based on the initial SUSv2 specification, where vsnprintf() when n = 0 returns an unspecified value less than 1.
SunOS 5.11 7 Jan 2009 vprintf(3C)