| Skip Navigation Links | |
| Exit Print View | |
![]() | man pages section 3: Basic Library Functions Oracle Solaris 11 Information Library |
enable_extended_FILE_stdio(3C)
posix_spawnattr_getschedparam(3C)
posix_spawnattr_getschedpolicy(3C)
posix_spawnattr_getsigdefault(3C)
posix_spawnattr_getsigignore_np(3C)
posix_spawnattr_getsigmask(3C)
posix_spawnattr_setschedparam(3C)
posix_spawnattr_setschedpolicy(3C)
posix_spawnattr_setsigdefault(3C)
posix_spawnattr_setsigignore_np(3C)
posix_spawnattr_setsigmask(3C)
posix_spawn_file_actions_addclose(3C)
posix_spawn_file_actions_addclosefrom_np(3C)
posix_spawn_file_actions_adddup2(3C)
posix_spawn_file_actions_addopen(3C)
posix_spawn_file_actions_destroy(3C)
posix_spawn_file_actions_init(3C)
pthread_attr_getdetachstate(3C)
pthread_attr_getinheritsched(3C)
pthread_attr_getschedparam(3C)
pthread_attr_getschedpolicy(3C)
pthread_attr_setdetachstate(3C)
pthread_attr_setinheritsched(3C)
pthread_attr_setschedparam(3C)
pthread_attr_setschedpolicy(3C)
pthread_barrierattr_destroy(3C)
pthread_barrierattr_getpshared(3C)
pthread_barrierattr_setpshared(3C)
pthread_condattr_getpshared(3C)
pthread_condattr_setpshared(3C)
pthread_cond_reltimedwait_np(3C)
pthread_key_create_once_np(3C)
pthread_mutexattr_getprioceiling(3C)
pthread_mutexattr_getprotocol(3C)
pthread_mutexattr_getpshared(3C)
pthread_mutexattr_getrobust(3C)
pthread_mutexattr_setprioceiling(3C)
pthread_mutexattr_setprotocol(3C)
pthread_mutexattr_setpshared(3C)
pthread_mutexattr_setrobust(3C)
pthread_mutex_getprioceiling(3C)
pthread_mutex_reltimedlock_np(3C)
pthread_mutex_setprioceiling(3C)
pthread_rwlockattr_destroy(3C)
pthread_rwlockattr_getpshared(3C)
pthread_rwlockattr_setpshared(3C)
pthread_rwlock_reltimedrdlock_np(3C)
pthread_rwlock_reltimedwrlock_np(3C)
pthread_rwlock_timedrdlock(3C)
pthread_rwlock_timedwrlock(3C)
rctlblk_get_enforced_value(3C)
- formatted error messages
#include <err.h>voiderr(inteval,const char *fmt, ...);
voidverr(inteval,const char *fmt,va_listargs);
voiderrx(inteval,const char *fmt, ...);
voidverrx(inteval,const char *fmt,va_listargs);
voidwarn(const char *fmt, ...);
voidvwarn(const char *fmt,va_listargs);
voidwarnx(const char *fmt, ...);
voidvwarnx(const char *fmt,va_listargs);
Theerr() andwarn() family of functions display a formatted error messageon the standard error output. In all cases, the last component ofthe program name, followed by a colon character and a space, areoutput. If thefmt argument is notNULL, the formatted error message isoutput. In the case of theerr(),verr(),warn(), andvwarn() functions,the error message string affiliated with the current value of the global variableerrno is output next, preceded by a colon character and a spaceiffmt is notNULL. In all cases, the output is followedby a newline character. Theerrx(),verrx(),warnx(), andvwarnx() functionswill not output this error message string.
Theerr(),verr(),errx(), andverrx() functions do not return, but insteadcause the program to terminate with the status value given by theargument status.
Example 1 Display the currenterrno information string and terminate with status indicating failure.
if ((p = malloc(size)) == NULL) err(EXIT_FAILURE, NULL);if ((fd = open(file_name, O_RDONLY, 0)) == -1) err(EXIT_FAILURE, "%s", file_name);
Example 2 Display an error message and terminate with status indicating failure.
if (tm.tm_hour < START_TIME) errx(EXIT_FAILURE, "too early, wait until %s", start_time_string);
Example 3 Warn of an error.
if ((fd = open(raw_device, O_RDONLY, 0)) == -1) warnx("%s: %s: trying the block device", raw_device, strerror(errno));if ((fd = open(block_device, O_RDONLY, 0)) == -1) warn("%s", block_device);It is important never to pass a string with user-supplied data asa format without using `%s'. An attacker can put format specifiers inthe string to mangle the stack, leading to a possible security hole.This holds true even if the string has been built ``by hand''using a function likesnprintf(3C), as the resulting string can still containuser-supplied conversion specifiers for later interpolation by theerr() andwarn() functions.
Always be sure to use the proper secure idiom:
err(1, "%s", string);
Seeattributes(5) for descriptions of the following attributes:
|
These functions are safe to use in multithreaded applications as long assetlocale(3C) is not being called to change the locale.
exit(3C),getexecname(3C),setlocale(3C),strerror(3C),attributes(5)
Copyright © 2011, Oracle and/or its affiliates. All rights reserved.Legal Notices | ![]() ![]() |