#include <nl_types.h> char *catgets(nl_catd catd, int set_num, int msg_num, const char *s);
The catgets() function attempts to read message msg_num, in set set_num, from the message catalog identified by catd. The catd argument is a catalog descriptor returned from an earlier call to catopen(). The s argument points to a default message string which will be returned by catgets() if the identified message catalog is not currently available.
If the identified message is retrieved successfully, catgets() returns a pointer to an internal buffer area containing the null terminated message string. If the call is unsuccessful for any reason, catgets() returns a pointer to s and errno may be set to indicate the error.
The catgets() function may fail if:
The catd argument is not a valid message catalogue descriptor open for reading.
The number of %n specifiers that appear in the message string specified by s does not match the number of %n specifiers that appear in the message identified by set_id and msg_id in the specified message catalog.
The read operation was terminated due to the receipt of a signal, and no data was transferred.
The message catalog identified by catd is corrupted.
The message identified by set_id and msg_id is not in the message catalog.
The catgets() function can be used safely in multithreaded applications as long as setlocale(3C) is not being called to change the locale.
See attributes(5) for descriptions of the following attributes: