use lighter internal stdio lock in getopt error printing

the public flockfile interface is significantly heavier because it has
to handle the possibility of caller returning or thread exiting while
holding the lock.
This commit is contained in:
Rich Felker 2018-09-10 23:04:42 -04:00
parent 7ab1578d05
commit cf7db2427f

View file

@ -5,6 +5,7 @@
#include <stdlib.h>
#include "libc.h"
#include "locale_impl.h"
#include "stdio_impl.h"
char *optarg;
int optind=1, opterr=1, optopt, __optpos, __optreset=0;
@ -16,12 +17,12 @@ void __getopt_msg(const char *a, const char *b, const char *c, size_t l)
{
FILE *f = stderr;
b = __lctrans_cur(b);
flockfile(f);
FLOCK(f);
fputs(a, f)>=0
&& fwrite(b, strlen(b), 1, f)
&& fwrite(c, 1, l, f)==l
&& putc('\n', f);
funlockfile(f);
FUNLOCK(f);
}
int getopt(int argc, char * const argv[], const char *optstring)