Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  str_error.c   Sprache: C

 
// SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
#undef _GNU_SOURCE
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include "str_error.h"

#ifndef ENOTSUPP
#define ENOTSUPP 524
#endif

/* make sure libbpf doesn't use kernel-only integer typedefs */
#pragma GCC poison u8 u16 u32 u64 s8 s16 s32 s64

/*
 * Wrapper to allow for building in non-GNU systems such as Alpine Linux's musl
 * libc, while checking strerror_r() return to avoid having to check this in
 * all places calling it.
 */

char *libbpf_strerror_r(int err, char *dst, int len)
{
 int ret = strerror_r(err < 0 ? -err : err, dst, len);
 /* on glibc <2.13, ret == -1 and errno is set, if strerror_r() can't
 * handle the error, on glibc >=2.13 *positive* (errno-like) error
 * code is returned directly
 */

 if (ret == -1)
  ret = errno;
 if (ret) {
  if (ret == EINVAL)
   /* strerror_r() doesn't recognize this specific error */
   snprintf(dst, len, "unknown error (%d)", err < 0 ? err : -err);
  else
   snprintf(dst, len, "ERROR: strerror_r(%d)=%d", err, ret);
 }
 return dst;
}

const char *libbpf_errstr(int err)
{
 static __thread char buf[12];

 if (err > 0)
  err = -err;

 switch (err) {
 case -E2BIG:  return "-E2BIG";
 case -EACCES:  return "-EACCES";
 case -EADDRINUSE: return "-EADDRINUSE";
 case -EADDRNOTAVAIL: return "-EADDRNOTAVAIL";
 case -EAGAIN:  return "-EAGAIN";
 case -EALREADY:  return "-EALREADY";
 case -EBADF:  return "-EBADF";
 case -EBADFD:  return "-EBADFD";
 case -EBUSY:  return "-EBUSY";
 case -ECANCELED: return "-ECANCELED";
 case -ECHILD:  return "-ECHILD";
 case -EDEADLK:  return "-EDEADLK";
 case -EDOM:  return "-EDOM";
 case -EEXIST:  return "-EEXIST";
 case -EFAULT:  return "-EFAULT";
 case -EFBIG:  return "-EFBIG";
 case -EILSEQ:  return "-EILSEQ";
 case -EINPROGRESS: return "-EINPROGRESS";
 case -EINTR:  return "-EINTR";
 case -EINVAL:  return "-EINVAL";
 case -EIO:  return "-EIO";
 case -EISDIR:  return "-EISDIR";
 case -ELOOP:  return "-ELOOP";
 case -EMFILE:  return "-EMFILE";
 case -EMLINK:  return "-EMLINK";
 case -EMSGSIZE:  return "-EMSGSIZE";
 case -ENAMETOOLONG: return "-ENAMETOOLONG";
 case -ENFILE:  return "-ENFILE";
 case -ENODATA:  return "-ENODATA";
 case -ENODEV:  return "-ENODEV";
 case -ENOENT:  return "-ENOENT";
 case -ENOEXEC:  return "-ENOEXEC";
 case -ENOLINK:  return "-ENOLINK";
 case -ENOMEM:  return "-ENOMEM";
 case -ENOSPC:  return "-ENOSPC";
 case -ENOTBLK:  return "-ENOTBLK";
 case -ENOTDIR:  return "-ENOTDIR";
 case -ENOTSUPP:  return "-ENOTSUPP";
 case -ENOTTY:  return "-ENOTTY";
 case -ENXIO:  return "-ENXIO";
 case -EOPNOTSUPP: return "-EOPNOTSUPP";
 case -EOVERFLOW: return "-EOVERFLOW";
 case -EPERM:  return "-EPERM";
 case -EPIPE:  return "-EPIPE";
 case -EPROTO:  return "-EPROTO";
 case -EPROTONOSUPPORT: return "-EPROTONOSUPPORT";
 case -ERANGE:  return "-ERANGE";
 case -EROFS:  return "-EROFS";
 case -ESPIPE:  return "-ESPIPE";
 case -ESRCH:  return "-ESRCH";
 case -ETXTBSY:  return "-ETXTBSY";
 case -EUCLEAN:  return "-EUCLEAN";
 case -EXDEV:  return "-EXDEV";
 default:
  snprintf(buf, sizeof(buf), "%d", err);
  return buf;
 }
}

Messung V0.5
C=96 H=100 G=97

¤ Dauer der Verarbeitung: 0.21 Sekunden  (vorverarbeitet)  ¤

*© 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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge