Article View: pl.comp.os.linux.programowanie
Article #131Re: Terminal sterujšcy
From: Cezary H. Noweta
Date: Mon, 06 Sep 1999 06:56
Date: Mon, 06 Sep 1999 06:56
45 lines
2265 bytes
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-mailReferences:
<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