This is the mail archive of the
mailing list for the GDB project.
Re: sim/arm/armos.c: IsTTY [PATCH]
> Date: Sun, 18 Sep 2005 11:03:41 +0200 (CEST)
> From: Mark Kettenis <firstname.lastname@example.org>
> CC: email@example.com, firstname.lastname@example.org, email@example.com,
> FWIW, the correct way to deal with these issues is to dynamically
> allocate the buffer, making the buffer bigger if it fails because the
> buffer is too small:
> #ifndef _POSIX_PATH_MAX
> #define _POSIX_PATH_MAX 256
> size_t len = _POSIX_PATH_MAX;
> char *buf = xmalloc(len);
> while (foo(..., buf, len) == -1 && errno == ENAMETOOLONG)
> len *= 2;
> buf = xrealloc(buf, len);
> I used _POSIX_PATH_MAX here, but you could probably just as well
> hardcode a sensible value. Don't forget to free the buffer once
> you're done with it ;-).
Forgive my bluntness, but if such a simple job requires such
complicated code, and with caveats on top of that, it's a clear sign
of a botched API, worthy of a certain company from Redmond!