浏览代码

Initial revision

Paul Eggert 26 年之前
父节点
当前提交
cb562d7194
共有 1 个文件被更改,包括 39 次插入0 次删除
  1. 39 0
      lib/human.h

+ 39 - 0
lib/human.h

@@ -0,0 +1,39 @@
+#ifndef HUMAN_H_
+# define HUMAN_H_ 1
+
+# if HAVE_CONFIG_H
+#  include <config.h>
+# endif
+
+# if HAVE_INTTYPES_H
+#  include <inttypes.h>
+# endif
+
+/* A conservative bound on the maximum length of a human-readable string.
+   The output can be the product of the largest uintmax_t and the largest int,
+   so add their sizes before converting to a bound on digits.  */
+# define LONGEST_HUMAN_READABLE ((sizeof (uintmax_t) + sizeof (int)) \
+				 * CHAR_BIT / 3)
+
+# ifndef PARAMS
+#  if defined PROTOTYPES || (defined __STDC__ && __STDC__)
+#   define PARAMS(Args) Args
+#  else
+#   define PARAMS(Args) ()
+#  endif
+# endif
+
+enum human_inexact_style
+{
+  human_floor = -1,
+  human_round_to_even = 0,
+  human_ceiling = 1
+};
+
+char *human_readable PARAMS ((uintmax_t, char *, int, int));
+char *human_readable_inexact PARAMS ((uintmax_t, char *, int, int,
+				      enum human_inexact_style));
+
+void human_block_size PARAMS ((char const *, int, int *));
+
+#endif /* HUMAN_H_ */