Back to index

glibc  2.9
Defines | Functions
tst-printfsz.c File Reference
#include <printf.h>
#include <stdio.h>
#include <string.h>

Go to the source code of this file.

Defines

#define V   12345678.12345678

Functions

int main (int argc, char *argv[])

Define Documentation

#define V   12345678.12345678

Definition at line 6 of file tst-printfsz.c.


Function Documentation

int main ( int  argc,
char *  argv[] 
)

Definition at line 10 of file tst-printfsz.c.

{
  char buf[1024];
  int result = 0;

  /* Register the printf handlers.  */
  register_printf_function ('b', printf_size, printf_size_info);
  register_printf_function ('B', printf_size, printf_size_info);


  sprintf (buf, "%g %b %B %.0b %.0B %.1b %.1B %8.0b %08.0B",
          V, 1025., V, V, V, V, V, V, V, V);
  fputs (buf, stdout);
  if (strcmp (buf, "\
1.23457e+07 1.001k 12.346M 12m 12M 11.8m 12.3M      12m 0000012M"))
    {
      result = 1;
      fputs (" -> WRONG\n", stdout);
    }
  else
    fputs (" -> OK\n", stdout);

  sprintf (buf, "%b|%B|%-20.2b|%-10.0b|%-10.8b|%-10.2B|",
          V, V, V, V, V, V, V, V, V, V, V);
  fputs (buf, stdout);
  if (strcmp (buf, "\
11.774m|12.346M|11.77m              |12m       |11.77375614m|12.35M    |"))
    {
      result = 1;
      fputs (" -> WRONG\n", stdout);
    }
  else
    fputs (" -> OK\n", stdout);

  sprintf (buf, "%#.0B %*.0b %10.*b %*.*B %10.2B",
          V, 2, V, 2, V, 10, 2, V, V);
  fputs (buf, stdout);
  if (strcmp (buf, "12.M 12m     11.77m     12.35M     12.35M"))
    {
      result = 1;
      fputs (" -> WRONG\n", stdout);
    }
  else
    fputs (" -> OK\n", stdout);

  sprintf (buf, "%6B %6.1B %b %B %b %B",
          V, V, 1000.0, 1000.0, 1024.0, 1024.0);
  fputs (buf, stdout);
  if (strcmp (buf, "12.346M  12.3M 1000.000  1.000K 1.000k 1.024K"))
    {
      result = 1;
      fputs (" -> WRONG\n", stdout);
    }
  else
    fputs (" -> OK\n", stdout);

  return result;
}

Here is the call graph for this function: