ttyslot(3)


NAME

   ttyslot - find the slot of the current user's terminal in some file

SYNOPSIS

   #include <unistd.h>    /* on BSD-like systems, and Linux */
   #include <stdlib.h>    /* on System V-like systems */

   int ttyslot(void);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

   ttyslot():
       Since glibc 2.20:
           _BSD_SOURCE ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_ < 500
       Glibc 2.19 and earlier:
           _DEFAULT_SOURCE ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_ < 500

DESCRIPTION

   The  legacy  function ttyslot() returns the index of the current user's
   entry in some file.

   Now "What file?" you ask.  Well, let's first look at some history.

   Ancient history
   There used to be a file /etc/ttys in UNIX V6,  that  was  read  by  the
   init(1)  program  to find out what to do with each terminal line.  Each
   line consisted of three characters.  The first character was either '0'
   or  '1',  where  '0'  meant "ignore".  The second character denoted the
   terminal: '8' stood  for  "/dev/tty8".   The  third  character  was  an
   argument to getty(8) indicating the sequence of line speeds to try ('-'
   was: start trying 110 baud).  Thus a typical line was "18-".  A hang on
   some  line  was  solved  by  changing the '1' to a '0', signaling init,
   changing back again, and signaling init again.

   In UNIX V7 the format was changed: here the second  character  was  the
   argument to getty(8) indicating the sequence of line speeds to try ('0'
   was: cycle through 300-1200-150-110  baud;  '4'  was  for  the  on-line
   console DECwriter) while the rest of the line contained the name of the
   tty.  Thus a typical line was "14console".

   Later systems have more elaborate syntax.  System V-like  systems  have
   /etc/inittab instead.

   Ancient history (2)
   On  the  other  hand,  there  is  the file /etc/utmp listing the people
   currently logged in.  It is maintained by login(1).   It  has  a  fixed
   size,  and the appropriate index in the file was determined by login(1)
   using the ttyslot() call to find the number of the  line  in  /etc/ttys
   (counting from 1).

   The semantics of ttyslot
   Thus,  the  function  ttyslot()  returns  the  index of the controlling
   terminal of the calling process in the  file  /etc/ttys,  and  that  is
   (usually)  the  same  as the index of the entry for the current user in
   the file /etc/utmp.  BSD still has the /etc/ttys file,  but  System  V-
   like  systems  do  not,  and  hence  cannot refer to it.  Thus, on such
   systems the documentation  says  that  ttyslot()  returns  the  current
   user's index in the user accounting data base.

RETURN VALUE

   If  successful, this function returns the slot number.  On error (e.g.,
   if none of the file descriptors 0, 1 or 2 is associated with a terminal
   that  occurs in this data base) it returns 0 on UNIX V6 and V7 and BSD-
   like systems, but -1 on System V-like systems.

ATTRIBUTES

   For  an  explanation  of  the  terms  used   in   this   section,   see
   attributes(7).

   
   Interface  Attribute      Value     
   
   ttyslot()  Thread safety  MT-Unsafe 
   

CONFORMING TO

   SUSv1;  marked  as  LEGACY  in  SUSv2;  removed in POSIX.1-2001.  SUSv2
   requires -1 on error.

NOTES

   The utmp file is found various  places  on  various  systems,  such  as
   /etc/utmp, /var/adm/utmp, /var/run/utmp.

   The  glibc2  implementation of this function reads the file _PATH_TTYS,
   defined in <ttyent.h> as "/etc/ttys".  It returns 0  on  error.   Since
   Linux systems do not usually have "/etc/ttys", it will always return 0.

   Minix also has fttyslot(fd).

SEE ALSO

   getttyent(3), ttyname(3), utmp(5)

COLOPHON

   This  page  is  part of release 4.09 of the Linux man-pages project.  A
   description of the project, information about reporting bugs,  and  the
   latest     version     of     this    page,    can    be    found    at
   https://www.kernel.org/doc/man-pages/.





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.