---
name: "msymbol_put"
section: "3m17n"
platform: "linux"
package: "m17n-docs"
version: "1.8.4-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/msymbol_put"
---

# msymbol\_put(3m17n)

## NAME

msymbol\_put -

## SYNOPSIS

int **msymbol\_put** (MSymbol *symbol*, MSymbol *key*, void \* *val*)

## DESCRIPTION

Set the value of a symbol property. The **msymbol\_put()** function assigns **val** to the value of the symbol property that belongs to **symbol** and whose key is **key**. If the symbol property already has a value, **val** overwrites the old one. Both **symbol** and **key** must not be **Mnil**.

If **key** is a managing key, **val** must be a managed object. In this case, the reference count of the old value, if not `NULL`, is decremented by one, and that of **val** is incremented by one.

## RETURN VALUE

If the operation was successful, **msymbol\_put()** returns 0. Otherwise it returns -1 and assigns an error code to the external variable **merror\_code**. \

## ERRORS

`MERROR_SYMBOL`

## SEE ALSO

**msymbol\_get()**\

## COPYRIGHT

Copyright (C) 2001 Information-technology Promotion Agency (IPA)\
 Copyright (C) 2001-2011 National Institute of Advanced Industrial Science and Technology (AIST)\
 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License  \<http://www.gnu.org/licenses/fdl.html\>.
