ctermid_r(3C)




NAME

     ctermid, ctermid_r - generate path name for controlling ter-
     minal


SYNOPSIS

     #include <stdio.h>

     char *ctermid(char *s);

     char *ctermid_r(char *s);


DESCRIPTION

  ctermid()
     The ctermid() function generates the path name of  the  con-
     trolling terminal for the current process and stores it in a
     string.

     If s is a null pointer, the string is stored in an  internal
     static area whose address is returned and whose contents are
     overwritten at the next call to ctermid(). Otherwise,  s  is
     assumed  to point to a character array of at least L_ctermid
     elements. The path name is placed  in  this  array  and  the
     value of s is returned. The constant L_ctermid is defined in
     the header <stdio.h>.

  ctermid_r()
     The ctermid_r() function behaves as ctermid() except that if
     s is a null pointer, the function returns NULL.


USAGE

     The difference between ctermid()  and  ttyname(3C)  is  that
     ttyname()  must  be passed a file descriptor and returns the
     actual name  of  the  terminal  associated  with  that  file
     descriptor, while ctermid() returns a string (/dev/tty) that
     will refer to the terminal if  used  as  a  file  name.  The
     ttyname() function is useful only if the process already has
     at least one file open to a terminal.

     The ctermid() function is unsafe in  multithreaded  applica-
     tions.   The  ctermid_r()  function is MT-Safe and should be
     used instead.

     When compiling multithreaded applications,  the   _REENTRANT
     flag  must be defined on the compile line.  This flag should
     be used only with multithreaded applications.


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
   |        ATTRIBUTE TYPE       |        ATTRIBUTE VALUE      |
   | ____________________________|_____________________________|_
   |  Interface Stability        |  ctermid() is Standard      |
   | ____________________________|_____________________________|_
   |  MT-Level                   |  ctermid()    is     Unsafe;|
   |                             |  ctermid_r() is MT-Safe     |
   |_____________________________|_____________________________|


SEE ALSO

     ttyname(3C), attributes(5)


Man(1) output converted with man2html