OSDN Git Service

LDP: Update original to LDP v3.68
[linuxjm/LDP_man-pages.git] / original / man3 / printf.3
index 20a3b5d..f2ba527 100644 (file)
@@ -31,7 +31,7 @@
 .\" 2000-07-26 jsm28@hermes.cam.ac.uk - three small fixes
 .\" 2000-10-16 jsm28@hermes.cam.ac.uk - more fixes
 .\"
-.TH PRINTF 3  2013-09-04 "GNU" "Linux Programmer's Manual"
+.TH PRINTF 3  2013-12-30 "GNU" "Linux Programmer's Manual"
 .SH NAME
 printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf,
 vsnprintf \- formatted output conversion
@@ -160,7 +160,7 @@ and
 do not write more than
 .I size
 bytes (including the terminating null byte (\(aq\e0\(aq)).
-If the output was truncated due to this limit then the return value
+If the output was truncated due to this limit, then the return value
 is the number of characters (excluding the terminating null byte)
 which would have been written to the final string if enough space
 had been available.
@@ -784,7 +784,7 @@ The
 pointer argument is printed in hexadecimal (as if by
 .B %#x
 or
-.BR  %#lx ).
+.BR %#lx ).
 .TP
 .B n
 The number of characters written so far is stored into the integer
@@ -1026,9 +1026,6 @@ one might obtain "Sonntag, 3. Juli, 10:02".
 .PP
 To allocate a sufficiently large string and print into it
 (code correct for both glibc 2.0 and glibc 2.1):
-.PP
-If truncation occurs in glibc versions prior to 2.0.6, this is treated as an
-error instead of being handled gracefully.
 .nf
 
 #include <stdio.h>
@@ -1043,7 +1040,8 @@ make_message(const char *fmt, ...)
     char *p, *np;
     va_list ap;
 
-    if ((p = malloc(size)) == NULL)
+    p = malloc(size);
+    if (p == NULL)
         return NULL;
 
     while (1) {
@@ -1056,8 +1054,10 @@ make_message(const char *fmt, ...)
 
         /* Check error code */
 
-        if (n < 0)
+        if (n < 0) {
+            free(p);
             return NULL;
+        }
 
         /* If that worked, return the string */
 
@@ -1069,7 +1069,8 @@ make_message(const char *fmt, ...)
         size = n + 1;       /* Precisely what is needed */
 
 
-        if ((np = realloc (p, size)) == NULL) {
+        np = realloc(p, size);
+        if (np == NULL) {
             free(p);
             return NULL;
         } else {
@@ -1078,6 +1079,9 @@ make_message(const char *fmt, ...)
     }
 }
 .fi
+.PP
+If truncation occurs in glibc versions prior to 2.0.6, this is treated as an
+error instead of being handled gracefully.
 .SH SEE ALSO
 .BR printf (1),
 .BR asprintf (3),
@@ -1087,3 +1091,12 @@ make_message(const char *fmt, ...)
 .BR wcrtomb (3),
 .BR wprintf (3),
 .BR locale (5)
+.SH COLOPHON
+This page is part of release 3.68 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%http://www.kernel.org/doc/man\-pages/.