---
name: "gd_validate"
section: "3"
platform: "linux"
package: "libgetdata-doc"
version: "0.11.0-15"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/gd_validate"
---

# gd\_validate(3)

check a Dirfile field code for validity

## NAME

gd\_validate — check a Dirfile field code for validity

## SYNOPSIS

**#include \<getdata.h\>**

**int gd\_validate(DIRFILE \****dirfile***, const char \****field\_code***);**

## DESCRIPTION

The **gd\_validate**() function queries a [dirfile(5)](/dirfile/5.md) database specified by *dirfile* and checks whether *field\_code*, which may contain a representation suffix, specifies a valid field.

The  *dirfile* argument must point to a valid DIRFILE object previously created by a call to [**gd\_open**(3)](/gd_open/3.md).

This function checks whether the field and its input fields (if any) are found, and also that all non-literal parameters specify valid scalar fields.

## RETURN VALUE

If all checks pass, **gd\_validate**() returns zero.  On error, it returns a negative-valued error code.  Possible error codes are:\
  .TP 8 **GD\_E\_BAD\_CODE** The field specified by *field\_code* or one of the fields it uses as input was not found in the database.\
  .TP 8 **GD\_E\_BAD\_DIRFILE** The supplied dirfile was invalid.\
  .TP 8 **GD\_E\_BAD\_SCALAR** A non-literal scalar used in the definition of the field or one of its inputs was not found, or was not a **CONST** or **CARRAY** field.\
  .TP 8 **GD\_E\_DIMENSION** A scalar field was found where a vector field was expected.

The error code is also stored in the **DIRFILE** object and may be retrieved after this function returns by calling [**gd\_error**(3)](/gd_error/3.md). A descriptive error string for the error may be obtained by calling [**gd\_error\_string**(3)](/gd_error_string/3.md).

## NOTES

It is not necessary to call this function before passing a field code to another GetData function: all functions which accept field codes perform these checks themselves.

## HISTORY

The **dirfile\_validate**(3) function appared in GetData-0.6.0.

In GetData-0.7.0, this function was renamed to [**gd\_validate**(3)](/gd_validate/3.md).

In GetData-0.10.0, the error return from this function changed from -1 to a negative-valued error code.

## SEE ALSO

[**gd\_error**(3)](/gd_error/3.md), [**gd\_error\_string**(3)](/gd_error_string/3.md), [**gd\_getdata**(3)](/gd_getdata/3.md), [**gd\_open**(3)](/gd_open/3.md), [dirfile(5)](/dirfile/5.md)
