---
name: "FcPatternBuild"
section: "3"
platform: "linux"
package: "fontconfig"
version: "2:2.18.3-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/FcPatternBuild"
---

# FcPatternBuild(3)

Create patterns from arguments

## NAME

FcPatternBuild, FcPatternVaBuild, FcPatternVapBuild - Create patterns from arguments

## SYNOPSIS

**#include \<fontconfig/fontconfig.h\>**

**FcPattern \* FcPatternBuild (FcPattern \****pattern***, ...);**

**FcPattern \* FcPatternVaBuild (FcPattern \****pattern***, va\_list** *va***);**

**void FcPatternVapBuild (FcPattern \****result***, FcPattern \****pattern***, va\_list** *va***);**

## DESCRIPTION

Builds a pattern using a list of objects, types and values.  Each value to be entered in the pattern is specified with three arguments:

- 1\.

  Object name, a string describing the property to be added.

- 2\.

  Object type, one of the FcType enumerated values

- 3\.

  Value, not an FcValue, but the raw type as passed to any of the FcPatternAdd\<type\> functions.  Must match the type of the second argument.

The argument list is terminated by a null object name, no object type nor value need be passed for this.  The values are added to \`pattern', if \`pattern' is null, a new pattern is created.  In either case, the pattern is returned. Example

```
pattern = FcPatternBuild (0, FC_FAMILY, FcTypeString, "Times", (char *) 0);
```

FcPatternVaBuild is used when the arguments are already in the form of a varargs value. FcPatternVapBuild is a macro version of FcPatternVaBuild which returns its result directly in the *result* variable.
