[BusyBox] [PATCH] kill error message
Vladimir N. Oleynik
dzo at simtreas.ru
Wed Aug 17 00:50:37 MDT 2005
Rob,
> %m is a glibc extension. uClibc has an option to implement it, from
> menuconfig in uClibc 0.9.27:
>
> UCLIBC_HAS_PRINTF_M_SPEC:
> │
> │ Answer Y to support a glibc extension to interpret '%m' in printf
> │ format strings as an instruction to output the error message string
> │ (as generated by strerror) corresponding to the current value of 'errno
> │
> │ Most people will answer N.
But uclibc support register_printf_function().
If add to busybox autoconfigure for check "%m" or not,
we can use this code (tested):
/* %m for printf format if libc not unsupported */
#include <stdio.h>
#include <stdlib.h>
#include <printf.h>
#include <errno.h>
static int
print_add_parse_percent_m (FILE *stream,
const struct printf_info *info,
const void *const *args)
{
return fprintf (stream, "%*.*s",
(info->left ? -info->width : info->width), info->prec,
strerror(errno));
}
static int
print_add_parse_percent_m_arginfo (const struct printf_info *info, size_t n,
int *argtypes)
{
return 0;
}
int
main (int argc, char *argv[])
{
/* Register the print functions for support "%m" */
register_printf_function ('m', print_add_parse_percent_m,
print_add_parse_percent_m_arginfo);
....
}
>>>>AFTER
>>>># kill 1234
>>>>kill: 3: kill 1234: No such process
>>
>>Really to like you here this result?
>
>
> Assuming your translator program meant something like "Do you really like this
> result"? The answer is "I personally don't strongly care one way or the
> other".
Hmm.
Do you really like show the double "kill" word?
--w
vodz
More information about the busybox
mailing list