g2cfile.c(3)
π NAME π
g2cfile.c β the File functions for the g2c library. That's the whole vibe, bestie. This is a page from the Library Functions Manual (section 3, where the C library calls live π«Ά).
β¨ SYNOPSIS β¨
#include 'grib2_int.h'
(yes the include is written with those single quotes, and yes we're keeping it character-for-character, no cap π )
πΈ Macros
#define BYTES_TO_DISCIPLINE 6β the number of bytes to the discipline field in a GRIB2 message. Six. That's it. Iconic. β#define G2C_SEEKMSG_BUFSIZE 4092β the size of the buffer used ing2c_seekmsg(). She's a big girl.#define MIN(a, b)β find a minimum, and its value is literally this:
((a) < (b) ? (a) : (b))
#define READ_BUF_SIZE 4092β the default size of the read-buffer. β¨
π¦ Functions
int add_msg (G2C_FILE_INFO_T *file, int msg_num, size_t bytes_to_msg, size_t bytes_in_msg, int read_file, G2C_MESSAGE_INFO_T **msg)β add a new message to the linked list.int add_section (FILE *f, G2C_MESSAGE_INFO_T *msg, int sec_id, unsigned int sec_len, size_t bytes_to_sec, unsigned char sec_num)β add metadata about a new section 3, 4, 5, 6, or 7.static int determine_dims (G2C_SECTION_INFO_T *sec)β figure out the dimension information from the section 3 metadata.static int find_available_g2cid (int *g2cid)β find ag2cidto use for a file that's newly opened or created.static int free_metadata (int g2cid)β free the resources holding the file metadata.int g2c_add_file (const char *path, int mode, int *g2cid)β open a GRIB2 file and add it to the list of open files.int g2c_close (int g2cid)β close a GRIB2 file, freeing resources.int g2c_find_msg2 (int g2cid, size_t skip_bytes, size_t max_bytes, size_t *bytes_to_msg, size_t *bytes_in_msg)β search a file for the next GRIB1 or GRIB2 message.int g2c_get_msg (int g2cid, size_t skip_bytes, size_t max_bytes, size_t *bytes_to_msg, size_t *bytes_in_msg, unsigned char **cbuf)β search a file for the next GRIB1 or GRIB2 message and read it, allocating space in memory to hold the message.int g2c_open (const char *path, int mode, int *g2cid)β open an existing GRIB2 file.int g2c_rw_section1_metadata (FILE *f, int rw_flag, G2C_MESSAGE_INFO_T *msg)β read Section 1.int g2c_rw_section3_metadata (FILE *f, int rw_flag, G2C_SECTION_INFO_T *sec)β read the metadata from section 3 (Grid Definition Section) of a GRIB2 message.int g2c_rw_section4_metadata (FILE *f, int rw_flag, G2C_SECTION_INFO_T *sec)β read or write the metadata from section 4 (Product Definition Section) of a GRIB2 message.int g2c_rw_section5_metadata (FILE *f, int rw_flag, G2C_SECTION_INFO_T *sec)β read or write the metadata from section 5 (Data Representation Section) of a GRIB2 message.int g2c_rw_section6_metadata (FILE *f, int rw_flag, G2C_SECTION_INFO_T *sec)β read or write the metadata from section 6 (Data Representation Section) of a GRIB2 message.int g2c_seekmsg (int g2cid, size_t skip, size_t *offset, size_t *msglen)β search a file for the next GRIB2 Message.MUTEX (m)β define mutex for thread-safety. π§static int read_metadata (int g2cid)β read metadata from a GRIB2 file that's being opened withg2c_open().static int read_msg_metadata (G2C_MESSAGE_INFO_T *msg)β read the file to get metadata about a message.
π Variables
G2C_FILE_INFO_T g2c_file [G2C_MAX_FILES+1]β global file information. The main character of globals. πint g2c_next_g2cid = 1β the nextg2cidfile ID, used when opening or creating a file.
π Detailed Description π
File functions for the g2c library. That's the summary, and honestly it's giving exactly what it says on the tin. β¨
π Author
Ed Hartnett
π Date
Aug 16, 2022
π Definition in file
g2cfile.c.
πΈ Macro Definition Documentation πΈ
#define BYTES_TO_DISCIPLINE 6
Number of bytes to discipline field in GRIB2 message.
Definition at line 22 of file g2cfile.c.
Referenced by read_msg_metadata().
#define G2C_SEEKMSG_BUFSIZE 4092
Size of buffer used in g2c_seekmsg().
Definition at line 27 of file g2cfile.c.
Referenced by g2c_seekmsg().
#define MIN( a, b)
Value:
((a) < (b) ? (a) : (b))
Find a minimum.
Definition at line 16 of file g2cfile.c.
Referenced by g2c_find_msg2().
#define READ_BUF_SIZE 4092
Default size of read-buffer.
Definition at line 19 of file g2cfile.c.
Referenced by g2c_find_msg2().
π₯ Function Documentation π₯
int add_msg (G2C_FILE_INFO_T * file, int msg_num, size_t bytes_to_msg, size_t bytes_in_msg, int read_file, G2C_MESSAGE_INFO_T ** msg)
Add new message to linked list.
Parameters
fileβ Pointer to theG2C_FILE_INFO_Tfor this file.msg_numβ Number of the message in file (0-based).bytes_to_msgβ Number of bytes to the start of the message in the file.bytes_in_msgβ Length of message in bytes.read_fileβ Set to true to cause metadata to be read from a GRIB2 data file.msgβ Pointer to a pointer that will get the location of the newly createdG2C_MESSAGE_INFO_Tobject. Ignored if NULL.
Returns
G2C_NOERROR- No error.
Author
Ed Hartnett
Date
Sep 12, 2022
Definition at line 1017 of file g2cfile.c.
References g2c_message_info::bytes_in_msg, g2c_message_info::bytes_to_msg, g2c_message_info::file, G2C_ENOMEM, G2C_NOERROR, LOG, g2c_file_info::msg, g2c_message_info::msg_num, g2c_message_info::next, g2c_file_info::num_messages, and read_msg_metadata().
Referenced by g2c_open_index(), and read_metadata().
int add_section (FILE * f, G2C_MESSAGE_INFO_T * msg, int sec_id, unsigned int sec_len, size_t bytes_to_sec, unsigned char sec_num)
Add metadata about a new section 3, 4, 5, 6, or 7.
Parameters
fβ FILE pointer to open GRIB2 file.msgβ Pointer to theG2C_MESSAGE_INFO_Tstruct.sec_idβ 0-based section ID.sec_lenβ Length of section.bytes_to_secβ Number of bytes from start of message to this section.sec_numβ Section number.
Returns
G2C_NOERROR- No error.
Author
Ed Hartnett
Date
Sep 12, 2022
Definition at line 794 of file g2cfile.c.
References g2c_section_info::bytes_to_sec, G2C_EBADSECTION, G2C_ENOMEM, G2C_FILE_READ, G2C_NOERROR, g2c_rw_section3_metadata(), g2c_rw_section4_metadata(), g2c_rw_section5_metadata(), g2c_rw_section6_metadata(), LOG, g2c_section_info::msg, g2c_section_info::next, g2c_message_info::num_local, g2c_section_info::prev, g2c_message_info::sec, g2c_section_info::sec_id, g2c_section_info::sec_len, and g2c_section_info::sec_num.
Referenced by g2c_open_index(), and read_msg_metadata().
int determine_dims (G2C_SECTION_INFO_T * sec) [static]
Determine the dimension information from the section 3 metadata. See the GRIB2 - SECTION 3 GRID DEFINITION SECTION doc at https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_sect3.shtml. π
For a list of grid definitions see GRIB2 - TABLE 3.1 Grid Definition Template Number at https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table3-1.shtml.
Parameters
secβG2C_SECTION3_INFO_Tstruct.
Returns
G2C_NOERRORNo error.G2C_EINVALInvalid input.G2C_ENOMEMOut of memory.
Author
Ed Hartnett
Date
Sep 15, 2022
Definition at line 415 of file g2cfile.c.
References g2c_section3_info::dim, G2C_ENOMEM, G2C_MAX_NAME, G2C_NOERROR, g2c_section3_info::grid_def, LATITUDE, g2c_dim_info::len, LOG, LONGITUDE, g2c_dim_info::name, g2c_section_info::sec_info, g2c_section_info::template, and g2c_dim_info::value.
Referenced by g2c_rw_section3_metadata().
int find_available_g2cid (int * g2cid) [static]
Find a g2cid to use for a newly opened or created file.
Parameters
g2cidβ Pointer that gets the next available g2cid.
Returns
G2C_NOERROR- No error.G2C_EINVAL- Invalid input.G2C_ETOOMANYFILES- Trying to open too many files at the same time.
Author
Ed Hartnett 8/18/22
Definition at line 363 of file g2cfile.c.
References G2C_EINVAL, G2C_ETOOMANYFILES, g2c_file, G2C_MAX_FILES, g2c_next_g2cid, and G2C_NOERROR.
Referenced by g2c_add_file().
int free_metadata (int g2cid) [static]
Free resources holding the file metadata.
Parameters
g2cidβ Indentifier for the file.
Returns
G2C_NOERROR- No error.G2C_EBADID- Bad file ID.
Author
Ed Hartnett
Date
Aug 16, 2022
Definition at line 1304 of file g2cfile.c.
References G2C_EBADID, g2c_file, G2C_MAX_FILES, G2C_NOERROR, LOG, g2c_message_info::next, g2c_section_info::next, g2c_message_info::sec, g2c_section_info::sec_info, g2c_section_info::sec_num, and g2c_section_info::template.
Referenced by g2c_close().
int g2c_add_file (const char * path, int mode, int * g2cid)
Open a GRIB2 file and add it to the list of open files.
Parameters
pathβ Path of the file.modeβ Open mode flags.g2cidβ Pointer that gets an indentifier for the file.
Returns
G2C_NOERROR- No error.G2C_EINVAL- Invalid input.G2C_ETOOMANYFILES- Trying to open too many files at the same time.
Author
Ed Hartnett
Date
Aug 16, 2022
Definition at line 1143 of file g2cfile.c.
References find_available_g2cid(), G2C_EFILE, G2C_EINVAL, G2C_ENAMETOOLONG, g2c_file, G2C_MAX_NAME, G2C_NOERROR, G2C_WRITE, and LOG.
Referenced by g2c_open(), and g2c_open_index().
int g2c_close (int g2cid)
Close a GRIB2 file, freeing resources.
Parameters
g2cidβ Indentifier for the file.
Returns
G2C_NOERROR- No error.G2C_EBADID- Bad file ID.
Author
Ed Hartnett
Date
Aug 16, 2022
Definition at line 1367 of file g2cfile.c.
References free_metadata(), G2C_EBADID, G2C_EFILE, g2c_file, G2C_MAX_FILES, G2C_NOERROR, LOG, MUTEX_LOCK, and MUTEX_UNLOCK.
Referenced by main().
int g2c_find_msg2 (int g2cid, size_t skip_bytes, size_t max_bytes, size_t * bytes_to_msg, size_t * bytes_in_msg)
Search a file for the next GRIB1 or GRIB2 message. A grib message is identified by its indicator section, i.e. an 8-byte sequence with 'GRIB' in bytes 1-4 and a '1' or '2' in byte 8. If found, the length of the message is decoded from bytes 5-7. The search is done over a given section of the file. The search is terminated if an eof or i/o error is encountered.
Parameters
g2cidβ ID of the opened grib file, returned byg2c_open().skip_bytesβ Number of bytes to skip before search.max_bytesβ Maximum number of bytes to search.bytes_to_msgβ Pointer that gets the number of bytes to skip before message.bytes_in_msgβ Pointer that gets the number of bytes in message (or 0 if no message found)
Returns
G2C_NOERRORNo error.G2C_EBADIDg2cid not found.G2C_EFILEFile error.G2C_EINVALInvalid input.
Author
Ed Hartnett
Date
2022-08-19
Definition at line 164 of file g2cfile.c.
References: G2C_EBADID, G2C_EFILE, G2C_EINVAL, G2C_EMSG, G2C_ENOMEM, G2C_ERROR, g2c_file, G2C_MAGIC_HEADER_LEN, G2C_NOERROR, LOG, MIN, and READ_BUF_SIZE. π
g2c_get_msg β¨
int g2c_get_msg (int g2cid, size_t skip_bytes, size_t max_bytes, size_t *
bytes_to_msg, size_t * bytes_in_msg, unsigned char ** cbuf)
Okay bestie, this one is literally a GRIB message treasure hunt. π It searches a file for the next GRIB1 or GRIB2 message, and reads it, allocating space in memory to hold the message. A grib message is identified by its indicator section, i.e. an 8-byte sequence with 'GRIB' in bytes 1-4 and a '1' or '2' in byte 8. If found, the length of the message is decoded from bytes 5-7. The search is done over a given section of the file. The search is terminated if an EOF or I/O error is encountered. No cap. π
Parameters
g2cidβ ID of the opened grib file, returned byg2c_open().skip_bytesβ The number of bytes to skip before search.max_bytesβ The maximum number of bytes to search. Must be at least 16.bytes_to_msgβ A pointer that gets the number of bytes to skip before message.bytes_in_msgβ A pointer that gets the number of bytes in message (or 0 if no message found)cbufβ A pointer that gets allocation of memory, into which the message is copied. This memory must be freed by the caller.
Returns
G2C_NOERRORNo error.G2C_EBADIDg2cid not found.G2C_EFILEFile error.G2C_EINVALInvalid input.G2C_ENOMEMOut of memory.G2C_ENOMSGNo GRIB message found.
Author β Ed Hartnett
Date β 2022-08-20
Definition at line 291 of file g2cfile.c.
References: G2C_EBADID, G2C_EFILE, G2C_EINVAL, G2C_ENOMEM, G2C_ENOMSG, G2C_ERROR, g2c_file, G2C_MIN_MAX_BYTES, G2C_NOERROR, LOG, and seekgb(). πΈ
g2c_open π
int g2c_open (const char * path, int mode, int * g2cid)
Open an existing GRIB2 file. This function opens the GRIB2 file and reads its metadata. π
GRIB2 messages in the file are assigned a message ID, starting with 0 for the first message in the file.
Each product within a message is assigned a product ID, starting with 0 for the first product in the message.
Files opened with this function should be closed with a call g2c_close() to release resources.
Parameters
pathβ Path of the file.modeβ Open mode flags.g2cidβ Pointer that gets an indentifier for the file.
Returns
G2C_NOERROR- No error.G2C_EINVAL- Invalid input.G2C_ETOOMANYFILES- Trying to open too many files at the same time.
Author β Ed Hartnett
Date β Aug 16, 2022
Definition at line 1201 of file g2cfile.c.
References: g2c_add_file(), LOG, MUTEX_LOCK, MUTEX_UNLOCK, and read_metadata().
Referenced by main().
g2c_rw_section1_metadata π
int g2c_rw_section1_metadata (FILE * f, int rw_flag, G2C_MESSAGE_INFO_T *
msg)
Read Section 1. π
Parameters
fβ Pointer to open file.rw_flagβG2C_FILE_WRITEif function should write,G2C_FILE_READif it should read.msgβ Pointer toG2C_MESSAGE_INFO_Twhich will be populated with the values of section 0.
Returns
G2C_NOERRORNo error.
Author β Ed Hartnett
Date β 10/16/22
Definition at line 874 of file g2cfile.c.
References: g2c_message_info::center, g2c_message_info::day, G2C_ENOSECTION, g2c_file_io_short(), g2c_file_io_ubyte(), g2c_file_io_uint(), G2C_NOERROR, G2C_SECTION1_BYTES, g2c_message_info::hour, g2c_message_info::local_version, LOG, g2c_message_info::master_version, g2c_message_info::minute, g2c_message_info::month, g2c_message_info::sec1_len, g2c_message_info::second, g2c_message_info::sig_ref_time, g2c_message_info::status, g2c_message_info::subcenter, g2c_message_info::type, and g2c_message_info::year. π
Referenced by g2c_open_index(), g2c_write_index(), and read_msg_metadata().
g2c_rw_section3_metadata π¦
int g2c_rw_section3_metadata (FILE * f, int rw_flag, G2C_SECTION_INFO_T *
sec)
Read the metadata from section 3 (Grid Definition Section) of a GRIB2 message. When this function is called, the file cursor is positioned just after the section number field in the section. The size of the section, and the section number, have already been read when this function is called. β¨
Parameters
fβFILEpointer to open GRIB2 file.rw_flagβG2C_FILE_WRITEif function should write,G2C_FILE_READ(0) if it should read.secβ Pointer to theG2C_SECTION_INFO_Tstruct.
Returns
G2C_NOERRORNo error.G2C_EINVALInvalid input.G2C_ENOMEMOut of memory.G2C_ENOTEMPLATECan't find template.
Author β Ed Hartnett
Date β Sep 15, 2022
Definition at line 478 of file g2cfile.c.
References: determine_dims(), G2C_EINVAL, G2C_ENOMEM, g2c_file_io_template(), g2c_file_io_ubyte(), g2c_file_io_uint(), g2c_file_io_ushort(), g2c_get_grid_template(), G2C_MAX_GDS_TEMPLATE_MAPLEN, G2C_NOERROR, g2c_section3_info::grid_def, g2c_section3_info::interp_list, LOG, g2c_section3_info::num_data_points, g2c_section3_info::num_opt, g2c_section_info::sec_info, g2c_section_info::sec_num, g2c_section3_info::source_grid_def, g2c_section_info::template, and g2c_section_info::template_len. πΈ
Referenced by add_section(), and g2c_write_index().
g2c_rw_section4_metadata π
int g2c_rw_section4_metadata (FILE * f, int rw_flag, G2C_SECTION_INFO_T *
sec)
Read or write the metadata from section 4 (Product Definition Section) of a GRIB2 message. When this function is called, the file cursor is positioned just after the section number field in the section. The size of the section, and the section number, have already been read/written when this function is called. π«Ά
Parameters
fβFILEpointer to open GRIB2 file.rw_flagβG2C_FILE_WRITEif function should write,G2C_FILE_READif it should read.secβ Pointer to theG2C_SECTION_INFO_Tstruct.
Returns
G2C_NOERRORNo error.G2C_EINVALInvalid input.G2C_ENOMEMOut of memory.G2C_ENOTEMPLATECan't find template.
Author β Ed Hartnett
Date β Sep 16, 2022
Definition at line 574 of file g2cfile.c.
References: G2C_EINVAL, G2C_ENOMEM, g2c_file_io_template(), g2c_file_io_ushort(), g2c_get_pds_template(), G2C_MAX_PDS_TEMPLATE_MAPLEN, G2C_NOERROR, LOG, g2c_section_info::msg, g2c_section4_info::num_coord, g2c_message_info::num_fields, g2c_section4_info::prod_def, g2c_section_info::sec_info, g2c_section_info::sec_num, g2c_section_info::template, and g2c_section_info::template_len. π
Referenced by add_section(), and g2c_write_index().
g2c_rw_section5_metadata π§
int g2c_rw_section5_metadata (FILE * f, int rw_flag, G2C_SECTION_INFO_T *
sec)
Read or write the metadata from section 5 (Data Representation Section) of a GRIB2 message. When this function is called, the file cursor is positioned just after the section number field in the section. The size of the section, and the section number, have already been read when this function is called. β
Parameters
fβFILEpointer to open GRIB2 file.rw_flagβG2C_FILE_WRITEif function should write,G2C_FILE_READif it should read.secβ Pointer to theG2C_SECTION_INFO_Tstruct.
Returns
G2C_NOERRORNo error.G2C_EINVALInvalid input.G2C_ENOMEMOut of memory.G2C_ENOTEMPLATECan't find template.
Author β Ed Hartnett
Date β Sep 16, 2022
Definition at line 663 of file g2cfile.c.
References: g2c_section5_info::data_def, G2C_EINVAL, G2C_ENOMEM, g2c_file_io_template(), g2c_file_io_uint(), g2c_file_io_ushort(), g2c_get_drs_template(), G2C_MAX_PDS_TEMPLATE_MAPLEN, G2C_NOERROR, LOG, g2c_section5_info::num_data_points, g2c_section_info::sec_info, g2c_section_info::template, and g2c_section_info::template_len. π
Referenced by add_section(), and g2c_write_index().
g2c_rw_section6_metadata π
int g2c_rw_section6_metadata (FILE * f, int rw_flag, G2C_SECTION_INFO_T *
sec)
Read or write the metadata from section 6 (Data Representation Section) of a GRIB2 message. When this function is called, the file cursor is positioned just after the section number field in the section. The size of the section, and the section number, have already been read when this function is called. π
Parameters
fβFILEpointer to open GRIB2 file.rw_flagβG2C_FILE_WRITEif function should write,G2C_FILE_READif it should read.secβ Pointer to theG2C_SECTION_INFO_Tstruct.
Returns
G2C_NOERRORNo error.G2C_EINVALInvalid input.G2C_ENOMEMOut of memory.G2C_ENOTEMPLATECan't find template.
Author β Ed Hartnett
Date β Sep 16, 2022
Definition at line 745 of file g2cfile.c.
References: G2C_EINVAL, G2C_ENOMEM, g2c_file_io_ubyte(), G2C_NOERROR, g2c_section6_info::indicator, LOG, and g2c_section_info::sec_info. β¨
Referenced by add_section().
g2c_seekmsg π
int g2c_seekmsg (int g2cid, size_t skip, size_t * offset, size_t * msglen)
Search a file for the next GRIB2 Message. The search is terminated when a GRIB2 message is found, or the end of the file is reached. π
Parameters
g2cidβ ID of an open GRIB2 file, returned fromg2c_open()/g2c_create().skipβ The number of bytes in the file to skip before starting the search.offsetβ Pointer that gets the number of bytes to skip from the beggining of the file to where the GRIB message starts. Ignored ifNULL.msglenβ Pointer that gets the number of bytes in message (set to 0, if no message found). Ignored ifNULL.
Returns
G2C_NOERRORNo error.G2C_EBADIDBad g2cid.G2C_ENOMEMOut of memory.
Author β Ed Hartnett
Date β 2022-09-11
Definition at line 56 of file g2cfile.c.
References: G2C_EBADID, G2C_EFILE, G2C_ENOMEM, g2c_file, G2C_MAGIC_HEADER, G2C_NOERROR, G2C_SEEKMSG_BUFSIZE, hton64, and LOG. π
Referenced by read_metadata().
MUTEX (m ) π
MUTEX (m )
Define mutex for thread-safety. π«Ά
read_metadata (static) π
int read_metadata (int g2cid) [static]
Read metadata from a GRIB2 file being opened with g2c_open(). π
Parameters
g2cidβ The indentifier for the file.
Returns
G2C_NOERROR- No error.G2C_EBADIDg2cid not found.G2C_EFILEFile error.G2C_EINVALInvalid input.G2C_ENOMEMOut of memory.G2C_ENOMSGNo GRIB message found.
Author β Ed Hartnett
Date β Aug 22, 2022
Definition at line 1079 of file g2cfile.c.
References: add_msg(), G2C_EBADID, G2C_ENOMSG, g2c_file, g2c_log_file(), G2C_NOERROR, g2c_seekmsg(), and LOG. πΈ
Referenced by g2c_open().
read_msg_metadata (static) π
int read_msg_metadata (G2C_MESSAGE_INFO_T * msg) [static]
Read the file to get metadata about a message. β¨
Parameters
msgβ a pointer to theG2C_MESSAGE_INFO_Tstruct for this message. that's the whole assignment bestie π
Returns
G2C_NOERRORβ No error. we love a clean exit, no drama, periodt β¨
Author β Ed Hartnett π«Ά
Date β Sep 12, 2022
Definition at line 937 of file g2cfile.c.
References β okay so this function is lowkey plugged into a whole friend group, here's everyone it name-drops:
add_section()BYTES_TO_DISCIPLINEg2c_message_info::bytes_to_msgg2c_message_info::disciplineg2c_file_info::fg2c_message_info::fileFOUR_BYTESG2C_EBADSECTIONG2C_EFILEg2c_file_io_ubyte()g2c_file_io_uint()G2C_FILE_READG2C_NOERRORg2c_rw_section1_metadata()G2C_SECTION0_BYTESLOGONE_BYTEg2c_message_info::sec1_len
Referenced by β add_msg() is out here calling it up, main character supporting cast energy π
π Variable Documentation π
G2C_FILE_INFO_T g2c_file[G2C_MAX_FILES+1]
Global file information. the global file situation, iconic, the whole squad of files living in one array π
Definition at line 10 of file g2cfile.c.
Referenced by β literally everyone comes to this variable's house:
find_available_g2cid()free_metadata()g2c_add_file()g2c_close()g2c_compare()g2c_degrib2()g2c_find_msg2()g2c_get_msg()g2c_get_prod()g2c_inq()g2c_inq_dim()g2c_inq_msg()g2c_inq_msg_time()g2c_inq_prod()g2c_log_file()g2c_open_index()g2c_seekmsg()g2c_write_index()read_metadata()
int g2c_next_g2cid = 1
Next g2cid file ID β used when opening or creating a file. it starts at 1 and just keeps counting, no cap π¦
Definition at line 13 of file g2cfile.c.
Referenced by find_available_g2cid().
π Author π
Generated automatically by Doxygen for NCEPLIBS-g2c from the source code. yes bestie, the docs wrote themselves, slay π
and that's a wrap on the whole page fr fr π this was NCEPLIBS-g2c, Version 2.3.0, and you just read g2cfile.c(3). go forth and read some files, you absolute icon πβ¨
π¦ where this page comes from
- ubuntu resolute: libg2c-dev 2.3.0-4 Β· LGPL-3.0-only
- ubuntu stonking: libg2c-dev 2.3.0-7 Β· LGPL-3.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms