utmp의 화면에서 사용되는 디스플레이

utmp의 화면에서 사용되는 디스플레이

하나의 물리적 모니터만 사용하는 데스크탑 Linux의 X Window 시스템은 일반적으로 모니터 0, 화면 0을 사용합니다. Ubuntu 14.04 who의 출력은 다음과 같습니다.

user1   :0           2016-06-15 14:25 (:0)

( ) 의 약자 :0. 여기서는 GUI에서만 로그인합니다.:0.0:display.screen

그런 다음 터미널 에뮬레이터를 열었습니다. screen두 개의 서로 다른 창을 실행하고 만들었습니다(각각에는 bash. 결과 출력은 who다음과 같습니다.

user1   :0           2016-06-15 14:25 (:0)
user1   pts/1        2016-06-15 14:26 (:0)
user1   pts/11       2016-06-15 16:31 (:0:S.0)
user1   pts/11       2016-06-15 16:31 (:0:S.1)

이 구문을 사용하는 이유는 무엇입니까? 것 같다 :display:display.screen. screen실제 모니터 내에서 다른 모니터를 에뮬레이션하시겠습니까 ?

답변1

줄 끝의 텍스트를 참조하고 있습니다. screen어떤 의사 터미널 연결을 사용하고 있는지, screen어떤 창 번호가 할당되어 있는지를 나타내기 위해 기록됩니다 .논평그 기능은 코드에 명시되어 있습니다:

/* 
 * Construct a utmp entry for window wi. 
 * the hostname field reflects what we know about the user (display) 
 * location. If d_loginhost is not set, then he is local and we write 
 * down the name of his terminal line; else he is remote and we keep 
 * the hostname here. The letter S and the window id will be appended. 
 * A saved utmp entry in wi->w_savut serves as a template, usually. 
 */

그 다음에

      /* 
       * we want to set our ut_host field to something like 
       * ":ttyhf:s.0" or 
       * "faui45:s.0" or 
       * "132.199.81.4:s.0" (even this may hurt..), but not 
       * "faui45.informati"......:s.0 
       * HPUX uses host:0.0, so chop at "." and ":" (Eric Backus) 
       */

마지막으로 여러분이 인식할 수 있는 실제 코드를 제공합니다.

    sprintf(호스트 + strlen(호스트), ":S.%d", win->w_number);

    strncpy(u.ut_host, 호스트, sizeof(u.ut_host));

ut_hostutmp/utmpx 구조의 멤버 에 문자열을 저장합니다 .

추가 자료:

관련 정보