---
name: "optionSaveFile"
section: "3"
platform: "linux"
package: "autogen"
version: "5.18.16-6"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://carta.tech/man/optionSaveFile"
---

# optionSaveFile(3)

saves the option state to a file

## NAME

optionSaveFile - saves the option state to a file

## SYNOPSIS

\#include \<*your-opts.h*\>\
 cc \[...\] -o outfile infile.c -l**opts** \[...\]

void **optionSaveFile**(tOptions \* *opts*);

## DESCRIPTION

This routine will save the state of option processing to a file.  The name of that file can be specified with the argument to the **--save-opts** option, or by appending the **rcfile** attribute to the last **homerc** attribute.  If no **rcfile** attribute was specified, it will default to **.***programname***rc***.  If you wish to specify another* *file, you should invoke the* **SET\_OPT\_SAVE\_OPTS(***filename***)** *macro.*

*The recommend usage is as follows:*

```
    optionProcess(&progOptions, argc, argv);
    if (i_want_a_non_standard_place_for_this)
    SET_OPT_SAVE_OPTS("myfilename");
    optionSaveFile(&progOptions);
```

- *opts*

  *program options descriptor*

## ERRORS

*If no* **homerc** *file was specified, this routine will silently return* *and do nothing.  If the output file cannot be created or updated, a message* *will be printed to* **stderr** *and the routine will return.*

## SEE ALSO

*The info documentation for the -lopts library.*\
 *[ao\_string\_tokenize(3)](/man/ao_string_tokenize/3.md), [configFileLoad(3)](/man/configFileLoad/3.md), [optionFileLoad(3)](/man/optionFileLoad/3.md), [optionFindNextValue(3)](/man/optionFindNextValue/3.md), [optionFindValue(3)](/man/optionFindValue/3.md), [optionFree(3)](/man/optionFree/3.md), [optionGetValue(3)](/man/optionGetValue/3.md), [optionLoadLine(3)](/man/optionLoadLine/3.md), [optionMemberList(3)](/man/optionMemberList/3.md), [optionNextValue(3)](/man/optionNextValue/3.md), [optionOnlyUsage(3)](/man/optionOnlyUsage/3.md), [optionPrintVersion(3)](/man/optionPrintVersion/3.md), [optionPrintVersionAndReturn(3)](/man/optionPrintVersionAndReturn/3.md), [optionProcess(3)](/man/optionProcess/3.md), [optionRestore(3)](/man/optionRestore/3.md), [optionSaveState(3)](/man/optionSaveState/3.md), [optionUnloadNested(3)](/man/optionUnloadNested/3.md), [optionVersion(3)](/man/optionVersion/3.md), [strequate(3)](/man/strequate/3.md), [streqvcmp(3)](/man/streqvcmp/3.md), [streqvmap(3)](/man/streqvmap/3.md), [strneqvcmp(3)](/man/strneqvcmp/3.md), [strtransform(3)](/man/strtransform/3.md),*
