Next: , Previous: Printing Formatted Messages, Up: Formatted Messages


12.22.2 Adding Severity Classes

There is another possibility to introduce severity classes besides using the environment variable SEV_LEVEL. This simplifies the task of introducing new classes in a running program. One could use the setenv or putenv function to set the environment variable, but this is toilsome.

— Function: int addseverity (int severity, const char *string)

Preliminary: | MT-Safe | AS-Unsafe heap lock | AC-Unsafe lock mem | See POSIX Safety Concepts.

This function allows the introduction of new severity classes which can be addressed by the severity parameter of the fmtmsg function. The severity parameter of addseverity must match the value for the parameter with the same name of fmtmsg, and string is the string printed in the actual messages instead of the numeric value.

If string is NULL the severity class with the numeric value according to severity is removed.

It is not possible to overwrite or remove one of the default severity classes. All calls to addseverity with severity set to one of the values for the default classes will fail.

The return value is MM_OK if the task was successfully performed. If the return value is MM_NOTOK something went wrong. This could mean that no more memory is available or a class is not available when it has to be removed.

This function is not specified in the X/Open Portability Guide although the fmtsmg function is. It is available on System V systems.