🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.programowanie
Article #131

Re: Terminal sterujšcy

#131
From: Cezary H. Noweta
Date: Mon, 06 Sep 1999 06:56
45 lines
2265 bytes
Witam,

> Czy ktoœ z was może wie, jak z poziomu programu dowiedzieć się, na jakim
> terminalu sterujšcym proces został uruchomiony?  Jest wprawdzie funkcja
> biblioteczna ctermid(3), ale ona zawsze zwraca /dev/tty, a mi chodzi o
> coœ bardziej konkretnego (np. /dev/tty1).

Informacja ta znajduje sie w /proc/<pid>/stat (czyli /proc/self/stat)
na pozycji siodmej. Jest to int w formacie major_dev_num * 0x0100 +
+ minor_dev_num. Polecam PROC na piatej stronie MANa. Z tej informacji
korzysta PS. Opis numerow urzedzen znajduje sie w zrodlach jadra w
Documentation/devices.txt. Zero oznacza brak terminala. Przykladowy kod:

void GetCtrlTerminal(int *major, int *minor)
{
  int tty;
  FILE *f = fopen("/proc/self/stat", "r");
  fscanf(f, "%*d %*s %*c %*d %*d %*d %d", &tty);
  fclose(f);
  *major = tty / 0x0100;
  *minor = tty % 0x00FF;
}

Co do funkcji ctermid() to jest ona bezuzyteczna. Oto jej kod:

char *
DEFUN(ctermid, (s), char *s)
{
  static char name[L_ctermid];

  if (name[0] == '\0')
    (void) strcpy(name, "/dev/tty");

  if (s == NULL)
    return(name);

  return(strcpy(s, name));
}

  -- pozdrawiam

-- 
Cezary H. Noweta                 90-237 LODZ, ul. J.Matejki 34/38 POLAND
(chncc@irys.usun.drugiitrzeciczlon.uni.lodz.pl)  +48 42 6356013, 6356012
University of Lodz - Main Library                            fax 6781678
Technical Details
Message-ID: <37D365A7.1F3B620E@irys.usun.drugiitrzeciczlon.uni.lodz.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!uw.edu.pl!news.icm.edu.pl!news.man.poznan.pl!news.man.lodz.pl!not-for-mail
References: <7qlaeh$23t$1@info.cyf-kr.edu.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!uw.edu.pl!news.icm.edu.pl!news.man.poznan.pl!news.man.lodz.pl!not-for-mail
From: "Cezary H. Noweta" <chncc@irys.usun.drugiitrzeciczlon.uni.lodz.pl>
Newsgroups: pl.comp.os.linux.programowanie
Subject: Re: Terminal sterujšcy
Date: Mon, 06 Sep 1999 08:56:39 +0200
Organization: Biblioteka Uniwesytecka w Lodzi
Lines: 45
Message-ID: <37D365A7.1F3B620E@irys.usun.drugiitrzeciczlon.uni.lodz.pl>
References: <7qlaeh$23t$1@info.cyf-kr.edu.pl>
NNTP-Posting-Host: chncc.lib.uni.lodz.pl
Mime-Version: 1.0
X-Trace: kujawiak.man.lodz.pl 936601316 13591 212.191.71.33 (6 Sep 1999 07:01:56 GMT)
X-Complaints-To: abuse@man.lodz.pl
NNTP-Posting-Date: 6 Sep 1999 07:01:56 GMT
X-Mailer: Mozilla 4.08 [en] (Win95; I)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit