From 7729e0e91afbf8d45bb322d7e2d53f417fab01ed Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Fri, 21 Nov 2014 02:06:22 -0200 Subject: ctermid: return string literal, document MT-Safety pitfall for ChangeLog * sysdeps/posix/ctermid.c (ctermid): Return a pointer to a string literal if not passed a buffer. * manual/job.texi (ctermid): Update reasoning, note deviation from posix, suggest mtasurace when not passed a buffer, for future non-preliminary safety notes. --- manual/job.texi | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'manual') diff --git a/manual/job.texi b/manual/job.texi index 4f9bd81ffe..095c26d930 100644 --- a/manual/job.texi +++ b/manual/job.texi @@ -1039,10 +1039,12 @@ The function @code{ctermid} is declared in the header file @comment stdio.h @comment POSIX.1 @deftypefun {char *} ctermid (char *@var{string}) -@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +@safety{@prelim{}@mtsafe{@mtsposix{/!string}}@assafe{}@acsafe{}} @c This function is a stub by default; the actual implementation, for -@c posix systems, returns an internal buffer if passed a NULL string, -@c but the internal buffer is always set to /dev/tty. +@c posix systems, returns a pointer to a string literal if passed a NULL +@c string. It's not clear we want to commit to being MT-Safe in the +@c !string case, so maybe add mtasurace{:ctermid/!string} when we take +@c prelim out, to make room for using a static buffer in the future. The @code{ctermid} function returns a string containing the file name of the controlling terminal for the current process. If @var{string} is not a null pointer, it should be an array that can hold at least -- cgit v1.2.3