mirror of
https://git.sr.ht/~cismonx/bookmarkfs
synced 2025-06-07 19:58:50 +00:00
xstd: add convenience function xstrerror_save()
This commit is contained in:
parent
6f11f51171
commit
03da5fea5c
3 changed files with 25 additions and 4 deletions
|
@ -93,8 +93,8 @@ write_iov (
|
|||
while (1) {
|
||||
ssize_t nbytes = writev(fd, bufv, bufcnt);
|
||||
if (unlikely(nbytes < 0)) {
|
||||
int err = errno;
|
||||
log_printf("writev(): %s", xstrerror(err));
|
||||
int err;
|
||||
log_printf("writev(): %s", xstrerror_save(&err));
|
||||
|
||||
switch (err) {
|
||||
case EIO:
|
||||
|
|
14
src/xstd.c
14
src/xstd.c
|
@ -66,8 +66,8 @@ xfsync (
|
|||
int fd
|
||||
) {
|
||||
while (unlikely(0 != fsync(fd))) {
|
||||
int err = errno;
|
||||
log_printf("fsync(): %s", xstrerror(err));
|
||||
int err;
|
||||
log_printf("fsync(): %s", xstrerror_save(&err));
|
||||
|
||||
switch (err) {
|
||||
case EIO:
|
||||
|
@ -170,3 +170,13 @@ xstrerror (
|
|||
}
|
||||
return err_str;
|
||||
}
|
||||
|
||||
char const *
|
||||
xstrerror_save (
|
||||
int *errnum_ptr
|
||||
) {
|
||||
int err = errno;
|
||||
|
||||
*errnum_ptr = err;
|
||||
return xstrerror(err);
|
||||
}
|
||||
|
|
11
src/xstd.h
11
src/xstd.h
|
@ -169,4 +169,15 @@ xstrerror (
|
|||
int errnum
|
||||
);
|
||||
|
||||
/**
|
||||
* Like xstrerror(), but takes `errno` as error number,
|
||||
* and saves its value to `err_ptr`.
|
||||
*/
|
||||
BOOKMARKFS_INTERNAL
|
||||
FUNCATTR_RETURNS_NONNULL
|
||||
char const *
|
||||
xstrerror_save (
|
||||
int *errnum_ptr
|
||||
);
|
||||
|
||||
#endif /* !defined(BOOKMARKFS_XSTD_H_) */
|
||||
|
|
Loading…
Add table
Reference in a new issue