util.c(3)

πŸ“¦
version 2.3.0 Β· 3 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– util.c β€” NAME πŸŽ€

okay so bestie, welcome to util.c β€” it's the internal utility functions for the g2c library. that's it, that's the vibe. it's the lil backstage crew that keeps the whole show running, and we're gonna meet every single one of them. no skips. ✨

(it's a section 3 manual page from the Library Functions Manual, iykyk πŸ’…)


πŸ¦‹ SYNOPSIS 🌸

#include 'grib2_int.h'
#include <stdarg.h>

⭐ Functions ⭐

  • EXTERN_MUTEX (m) β€” if pthreads are enabled, use externally-defined mutex for thread-safety. that's the whole thing. tiny but mighty. πŸ’ͺ
  • int g2c_check_msg (unsigned char *cgrib, g2int *lencurr, int verbose, int from) β€” check for 'GRIB' at the beginning of a GRIB message, and check to see if the message is already terminated with '7777'.
  • int g2c_set_log_level (int new_level) β€” use this to set the global log level.

πŸ’œ Detailed Description πŸ’œ

Internal utility functions for the g2c library.

Author: Ed Hartnett

Date: Nov 11, 2021

Definition in file util.c.


πŸ”₯ Function Documentation πŸ”₯

🌈 EXTERN_MUTEX (m )

If pthreads are enabled, use externally-defined mutex for thread-safety.

that's it bestie, that's the function. short queen behavior. πŸ‘‘


🧚 int g2c_check_msg (unsigned char * cgrib, g2int * lencurr, int verbose, int from)

okay so this one actually does stuff. Check for 'GRIB' at the beginning of a GRIB message, and check to see if the message is already terminated with '7777'.

now here's the spicy part: on rare occasions, the last 4 bytes of section 7 (the data section) can literally be the GRIB terminating string of '7777'. 😭 this function accommodates for this by tracking which function called g2c_check_msg() via the from argument (see below).

🌸 Parameters 🌸

  • cgrib β€” Buffer that contains the GRIB message.
  • lencurr β€” Pointer that gets the length of the GRIB message.
  • verbose β€” If non-zero, print any error messages to stdout.
  • from β€” Mapping of where this function was called from.
    • 1 = From g2_addlocal()
    • 2 = From g2_addgrid()
    • 3 = From g2_addfield()
    • 4 = From g2_gribend()

⭐ Returns ⭐

  • G2C_NOERROR β€” No error.
  • G2C_ENOTGRIB β€” GRIB header not found.
  • G2C_EMSGCOMPLETE β€” GRIB message already complete.

Author: Ed Hartnett

Date: Nov 11, 2021

Author: Eric Engle

Definition at line 41 of file util.c.

References G2C_EMSGCOMPLETE, G2C_ENOTGRIB, G2C_NOERROR, gbit(), MUTEX_LOCK, and MUTEX_UNLOCK.

Referenced by g2_addfield(), g2_addgrid(), g2_addlocal(), and g2_gribend().


πŸ“ int g2c_set_log_level (int new_level)

Use this to set the global log level. Settings, bestie, listen up:

  • -1 turn off all logging.
  • 0 show only errors.
  • 1 output useful as verbose to utilities.
  • 2 or 3 shows some/all calls to top-level functions.
  • 4+ ever greater levels of detail.
If logging is not enabled when building NCEPLIBS-g2c, this function will do nothing. πŸ’€ like, full ghost mode. zero effect. not a single log line. so don't come crying to me if it's silent, okay?? 😭

πŸŽ€ Parameters πŸŽ€

  • new_level β€” The new logging level.

πŸ’– Returns πŸ’–

  • G2C_NOERROR β€” No error.

Author: Ed Hartnett

Definition at line 165 of file util.c.

References G2C_NOERROR, and LOG.

Referenced by main().


πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for NCEPLIBS-g2c from the source code.


and that's the whole page bestie!! this little manual page is from NCEPLIBS-g2c, and it's tagged as Version 2.3.0, dated... well, it's the util.c(3) page, section 3, and you just read all of it. πŸ’… slay. go log something. or don't, if logging wasn't enabled at build time. πŸ™ˆβœ¨

πŸ“¦ where this page comes from