diff options
Diffstat (limited to 'man/sd_bus_error-example.c')
-rw-r--r-- | man/sd_bus_error-example.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/man/sd_bus_error-example.c b/man/sd_bus_error-example.c new file mode 100644 index 0000000..9b162eb --- /dev/null +++ b/man/sd_bus_error-example.c @@ -0,0 +1,18 @@ +/* SPDX-License-Identifier: MIT-0 */ + +#include <errno.h> +#include <string.h> +#include <unistd.h> +#include <sd-bus.h> + +int writer_with_negative_errno_return(int fd, sd_bus_error *error) { + const char *message = "Hello, World!\n"; + + ssize_t n = write(fd, message, strlen(message)); + if (n >= 0) + return n; /* On success, return the number of bytes written, possibly 0. */ + + /* On error, initialize the error structure, and also propagate the errno + * value that write(2) set for us. */ + return sd_bus_error_set_errnof(error, errno, "Failed to write to fd %i: %m", fd); +} |