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

# gd\_protection(3)

report the protection level of a Dirfile fragment

## NAME

gd\_protection — report the protection level of a Dirfile fragment

## SYNOPSIS

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

**int gd\_protection(DIRFILE \****dirfile***, int** *fragment\_index***);**

## DESCRIPTION

The **gd\_protection**() function queries a [dirfile(5)](/dirfile/5.md) database specified by *dirfile* and determines the advisory protection level for the fragment indexed by *fragment\_index*.

## RETURN VALUE

Upon successful completion, **gd\_protection**() returns a non-negative integer indicating the the advisory protection level of the specified fragment.  This integer will equal one of the following symbols:

-

  **GD\_PROTECT\_NONE**, **GD\_PROTECT\_FORMAT**, **GD\_PROTECT\_DATA**,  **GD\_PROTECT\_ALL**.

The meaning of these symbols are explained in the [**gd\_alter\_protection**(3)](/gd_alter_protection/3.md) man page.  On error, it returns a negative-valued error code.  Possible error codes are:\
  .TP 8 **GD\_E\_BAD\_DIRFILE** The supplied dirfile was invalid.\
  .TP 8 **GD\_E\_BAD\_INDEX** The supplied index was out of range.

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).

## HISTORY

The **get\_protection**() function appeared in GetData-0.5.0.

In GetData-0.7.0 this function was renamed to **gd\_protection**().

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\_alter\_protection**(3)](/gd_alter_protection/3.md), [**gd\_error**(3)](/gd_error/3.md), [**gd\_error\_string**(3)](/gd_error_string/3.md), [dirfile(5)](/dirfile/5.md), [dirfile-format(5)](/dirfile-format/5.md)
