Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/tools/perf/util/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 1 kB image not shown  

Quelle  units.c   Sprache: C

 
// SPDX-License-Identifier: GPL-2.0
#include "units.h"
#include <inttypes.h>
#include <limits.h>
#include <stdlib.h>
#include <string.h>
#include <linux/kernel.h>
#include <linux/time64.h>

unsigned long parse_tag_value(const char *str, struct parse_tag *tags)
{
 struct parse_tag *i = tags;

 while (i->tag) {
  char *s = strchr(str, i->tag);

  if (s) {
   unsigned long int value;
   char *endptr;

   value = strtoul(str, &endptr, 10);
   if (s != endptr)
    break;

   if (value > ULONG_MAX / i->mult)
    break;
   value *= i->mult;
   return value;
  }
  i++;
 }

 return (unsigned long) -1;
}

double convert_unit_double(double value, char *unit)
{
 *unit = ' ';

 if (value > 1000.0) {
  value /= 1000.0;
  *unit = 'K';
 }

 if (value > 1000.0) {
  value /= 1000.0;
  *unit = 'M';
 }

 if (value > 1000.0) {
  value /= 1000.0;
  *unit = 'G';
 }

 return value;
}

unsigned long convert_unit(unsigned long value, char *unit)
{
 double v = convert_unit_double((double)value, unit);

 return (unsigned long)v;
}

int unit_number__scnprintf(char *buf, size_t size, u64 n)
{
 char unit[] = "BKMG";
 int i = 0;

 while (((n / 1024) > 1) && (i < 3)) {
  n /= 1024;
  i++;
 }

 return scnprintf(buf, size, "%" PRIu64 "%c", n, unit[i]);
}

Messung V0.5
C=86 H=96 G=90

¤ Dauer der Verarbeitung: 0.2 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.