Alejandro Colomar and Iker Pedrosa
ce4c4d4ad5
lib/string/sprintf.h: Add SNPRINTF() macro
...
It wraps snprintf(3) so that it performs some steps that one might
forget, or might be prone to accidents:
- It calculates the size of the destination buffer, and makes sure it's
an array (otherwise, using sizeof(s) would be very bad).
- It calculates if there's truncation or an error, returning -1 if so.
BTW, this macro doesn't have any issues of double evaluation, because
sizeof() doesn't evaluate its argument (unless it's a VLA, but then the
static_assert(3) within NITEMS() makes sure VLAs are not allowed).
This macro is very similar to STRTCPY(), defined in
<lib/string/strtcpy.h>.
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2023-12-15 16:41:47 +01:00
..
2023-12-15 16:41:47 +01:00
2007-10-07 11:46:07 +00:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-09-04 08:57:18 -05:00
2023-12-03 09:56:13 -06:00
2023-08-30 17:22:38 +02:00
2023-12-03 09:56:13 -06:00
2023-12-04 12:22:47 +01:00
2023-12-03 09:56:13 -06:00
2023-08-31 08:55:26 +02:00
2023-08-30 17:22:38 +02:00
2023-02-24 12:44:14 -06:00
2023-08-31 08:55:26 +02:00
2023-12-04 11:45:09 +01:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-12-03 09:56:13 -06:00
2023-12-03 09:56:13 -06:00
2023-08-31 08:55:26 +02:00
2023-12-14 07:40:40 -06:00
2022-12-29 13:58:49 -06:00
2023-12-03 12:22:11 -06:00
2023-12-14 07:40:40 -06:00
2023-09-01 09:39:23 +02:00
2023-12-03 12:22:11 -06:00
2023-12-13 09:08:12 -06:00
2022-01-02 18:38:42 -06:00
2023-08-31 08:55:26 +02:00
2023-12-03 22:24:29 -06:00
2021-12-23 19:36:50 -06:00
2021-12-23 19:36:50 -06:00
2023-12-14 07:40:40 -06:00
2023-08-31 08:55:26 +02:00
2023-03-31 09:53:40 -05:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-09-01 09:39:23 +02:00
2021-12-23 19:36:50 -06:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-12-04 12:21:55 +01:00
2023-12-13 10:06:34 -06:00
2023-12-04 12:21:55 +01:00
2023-08-31 08:55:26 +02:00
2023-12-03 09:56:13 -06:00
2023-12-03 12:22:11 -06:00
2023-10-20 18:46:23 -05:00
2023-12-04 12:21:55 +01:00
2023-12-04 12:21:55 +01:00
2023-12-04 12:21:55 +01:00
2023-12-04 12:21:55 +01:00
2023-12-04 12:21:55 +01:00
2023-10-20 21:05:33 +02:00
2021-12-23 19:36:50 -06:00
2023-09-01 09:39:23 +02:00
2021-12-23 19:36:50 -06:00
2023-06-08 09:05:39 -05:00
2023-08-31 08:55:26 +02:00
2023-12-14 07:40:40 -06:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-12-04 12:21:55 +01:00
2023-08-31 08:55:26 +02:00
2022-12-22 11:43:29 +01:00
2023-12-14 07:40:40 -06:00
2023-12-03 09:56:13 -06:00
2023-12-04 11:45:09 +01:00
2023-12-03 12:22:11 -06:00
2023-12-03 12:22:11 -06:00
2023-09-01 09:39:23 +02:00
2023-09-01 09:39:23 +02:00
2023-08-31 08:55:26 +02:00
2023-09-01 09:39:23 +02:00
2023-08-31 08:55:26 +02:00
2022-12-22 11:43:29 +01:00
2008-08-30 18:30:36 +00:00
2023-12-13 10:06:34 -06:00
2023-12-04 11:45:09 +01:00
2023-01-25 12:31:17 +01:00
2023-12-03 09:56:13 -06:00
2023-08-31 08:55:26 +02:00
2023-05-31 09:29:49 -05:00
2021-12-23 19:36:50 -06:00
2023-12-04 12:21:55 +01:00
2023-12-03 09:58:19 -06:00
2023-09-04 08:57:18 -05:00
2022-05-24 07:49:11 -05:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-12-03 09:56:13 -06:00
2023-08-21 13:54:27 -05:00
2021-12-23 19:36:50 -06:00
2023-09-01 09:39:23 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-10-20 21:05:33 +02:00
2022-05-24 07:49:11 -05:00
2023-09-01 09:39:23 +02:00
2023-03-20 08:47:52 +01:00
2023-12-03 09:56:13 -06:00
2023-08-31 08:55:26 +02:00
2023-12-03 12:22:11 -06:00
2023-06-08 09:05:39 -05:00
2022-10-14 10:41:40 +02:00
2022-12-22 11:43:29 +01:00
2023-09-01 09:39:23 +02:00
2021-12-23 19:36:50 -06:00
2023-02-09 10:03:03 -06:00
2023-02-09 10:03:03 -06:00
2021-12-23 19:36:50 -06:00
2023-01-26 22:44:39 -06:00
2021-12-27 16:28:23 +00:00
2022-08-06 11:27:56 -05:00
2023-09-01 09:39:23 +02:00
2023-12-13 12:34:30 +01:00
2023-09-01 09:39:23 +02:00
2022-01-02 18:38:42 -06:00
2023-06-08 09:05:39 -05:00
2018-09-13 14:20:02 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-12-03 09:58:19 -06:00
2021-05-23 08:16:16 -05:00
2023-08-31 08:55:26 +02:00
2023-08-21 11:29:17 +02:00
2010-03-18 19:23:00 +00:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-12-13 12:34:30 +01:00
2023-12-14 07:40:40 -06:00
2023-08-31 08:55:26 +02:00
2023-08-18 20:35:15 -05:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00