---
name: "VistaIOSetAttr"
section: "3"
platform: "linux"
package: "libvistaio-dev"
version: "1.2.19-3+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/VistaIOSetAttr"
---

# VistaIOSetAttr(3)

set an attribute's value

## NAME

VistaIOSetAttr - set an attribute's value

## SYNOPSIS

```
void VistaIOSetAttr (list, name, dict, repn, value)
VistaIOAttrList list;
VistaIOStringConst type;
VistaIODictEntry *dict;
VistaIORepnKind repn;
type value;
```

**void VistaIOSetAttrValue (***posn***,** *dict***,** *repn***,** *value***)**

**VistaIOAttrListPosn** *posn***;** **VistaIODictEntry \****dict***;** **VistaIORepnKind** *repn***;** *type value***;**

**where** *type***, according to** *repn***, is VistaIOBit, VistaIOUByte,** **VistaIOSByte, VistaIOShort, VistaIOLong, VistaIOFloat, VistaIODouble,** **VistaIOAttrList, VistaIOBoolean, VistaIOBundle, VistaIOList,** **VistaIOPointer, VistaIOString, VistaIOEdges, VistaIOImage, etc.**

## ARGUMENTS

- *list*

  **Specifies and returns the attribute list in which an attribute** **is to be set.**

- *name*

  **Specifies by name of the attribute to be set.**

- *posn*

  **Specifies by position the attribute to be set.**

- *dict*

  **May specify a dictionary to be used in translating the value supplied** **to a keyword that should be stored as the attribute's value, or it may be** **NULL**

- *repn*

  **Specifies the representation of the new attribute value.**

- *value*

  **Specifies the new attribute value.**

## DESCRIPTION

**These routines both set an attribute's value, but they differ in how the**  **attribute is identified:**

- •

  **VistaIOSetAttr sets the value of an attribute named** *name* **in the**  **attribute list** *list***. If** *list* **does not already contain an**  **attribute named** *name* **then a new attribute with that name is appended**  **to it. Otherwise, only the first attribute named** *name* **is located and**  **changed.**

- •

  **VistaIOSetAttrValue sets the value of the attribute whose position within**  **an attribute list is** *posn***.**

**With the** *dict* **argument you can provide a dictionary for mapping**  *value* **to a keyword that will be stored as the attribute's value (see**  **[VistaIOdictionary(3)](/VistaIOdictionary/3.md)). For example, if you pass an attribute value of 1**  **and a dictionary that associates the value 1 with the keyword ubyte**  **(as the dictionaryVistaIORepnDict does), then the string ubyte will**  **be stored as the attribute's value. Dictionaries may be used to map both**  **numeric values and strings to keywords. If you supply a dictionary but**  *value* **is not mentioned in that dictionary, then** *value* **itself**  **will be stored with the attribute.**

**If** *value* **is a number or character string, the routine makes its own** **copy of the value as a character string for storing in the attribute. If,** **on the other hand,** *value* **is an attribute list, pointer, image, edge** **set, etc., then the routine stores a pointer in the attribute but it does** **not make a copy of the object pointed to.**

## RETURN VALUES

**As a side effect, these routines modify the attribute list referred to by** *list* **or** *posn***.**

## EXAMPLES

**The following code fragment sets an image's name:**

```
VistaIOImage image;
```

**VistaIOSetAttr (VistaIOImageAttrList (image), VistaIONameAttr, NULL,**

**VistaIOStringRepn, "Mona Lisa");**

## SEE ALSO

[**VistaIOGetAttr**(3)](/VistaIOGetAttr/3.md), **VistaIOGetAttrValue**(3),\
 [**VistaIOattribute**(3)](/VistaIOattribute/3.md), [**VistaIOdictionary**(3)](/VistaIOdictionary/3.md),

## AUTHOR

**Art Pope \<pope@cs.ubc.ca\>**

**Adaption to vistaio: Gert Wollny \<gw.fossdev@gmail.com\>**
