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

# gd\_dirfile\_standards(3)

change or report the current Dirfile Standards Version for a DirFile

## NAME

gd\_dirfile\_standards — change or report the current Dirfile Standards Version for a DirFile

## SYNOPSIS

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

**int gd\_dirfile\_standards(DIRFILE \****dirfile***, int** *version***);**

## DESCRIPTION

The **gd\_dirfile\_standards**() function sets the current Standards Version for the open dirfile *dirfile* to the value specified by *version*, determining the syntax used to write metadata to disk for *dirfile*.

The Standards Version of the loaded dirfile also affects the operation of functions which add fields, such as **dirfile\_add**(3) or  **dirfile\_add\_spec**(3); and functions which modify field metadata, such as **dirfile\_alter\_entry**(3) or  **dirfile\_alter\_spec**(3). For specific behaviour see the manual page of the appropriate function.

The *version* parameter should be between zero and the value of the symbol **GD\_DIRFILE\_STANDARDS\_VERSION**, which is the newest Standards Version understood by GetData, inclusive, or else one of the following special symbols:\
  .TP 8 **GD\_VERSION\_EARLIEST** Specifies the current Standards Version should be set to the earliest version that supports all the features of the loaded *dirfile*;\
  .TP 8 **GD\_VERSION\_CURRENT** Specifies that the current Standards Version should not be changed.  In this case, this function simply reports the current Standards Version;\
  .TP 8 **GD\_VERSION\_LATEST** Specifies the current Standards Version should be set to the latest version that supports all the features of the loaded *dirfile*;

If the loaded dirfile does not conform to the specified *version*, this function fails, and the current Standards Version is unchanged.  If the loaded dirfile conforms to no known Standards Version, this function will fail regardless of the value of *version* (even if **GD\_VERSION\_CURRENT** is used).

The caller should not assume that the loaded dirfile conforms to every Standards Version between the values reported by **GD\_VERSION\_EARLIEST** and **GD\_VERSION\_LATEST**.

## RETURN VALUE

On success, **gd\_dirfile\_standards**() returns the current Standards Version of the loaded dirfile, after possibly having been updated by the call.  This will be a non-negative integer between zero and **GD\_DIRFILE\_STANDARDS\_VERSION** inclusive.  On error, a negative-valued error code is returned, and the current Standards Version is not changed.  Possible error codes are:\
  .TP 8 **GD\_E\_ARGUMENT** The loaded dirfile did not conform to the specified version.  Or the dirfile conforms to no known Standards Version.\
  .TP 8 **GD\_E\_BAD\_DIRFILE** The supplied dirfile was invalid.

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

This function only changes the current Standards Version of the loaded dirfile. It does not update the any format specification fragments on disk to conform to the specified Standards Version.  To do that, use [**gd\_metaflush**(3)](/gd_metaflush/3.md) or  [**gd\_rewrite\_fragment**(3)](/gd_rewrite_fragment/3.md).

## HISTORY

The function **gd\_dirfile\_standards**() appeared in GetData-0.7.0.

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

## SEE ALSO

[**gd\_open**(3)](/gd_open/3.md), [**gd\_metaflush**(3)](/gd_metaflush/3.md), [**gd\_rewrite\_fragment**(3)](/gd_rewrite_fragment/3.md)
