tail head cat sleep
QR code linking to this page

Man page  — LOGIN_TIMES

명칭

parse_lt, in_ltm, in_ltms – 로그인 시간대의 체크 및 해석을 실시하는 함수

내용

프로그램 라이브러리

System Utilities Library (libutil, -lutil)

서식

#include <sys/types.h>
#include <time.h>
#include <login_cap.h>

login_time_t
parse_lt(const char *str);

int
in_ltm(const login_time_t *lt, struct tm *t, time_t *ends);

int
in_ltms(const login_time_t *lt, struct tm *t, time_t *ends);

해설

이 함수 세트는, login.conf(5) 그리고 사용되고 있는, 로그인 허가 시간에 관한 정의가 끝난 리스트와 대조시켜 로그인 및 세션 시간의 체크와 해석을 실시합니다.

로그인 클래스의 times.allow (와)과 times.deny 권한 필드에서 정의된 허가, 비허가 세션 시간의 형식은, 1 자리수 또는 2, 3 자리수 이상의 캐릭터의 일자 코드를 정의하는 접두어로 구성됩니다. 하이픈으로 분리되는 24 시 형식의 개시, 종료시간이 거기에 계속됩니다. 일자 코드는, 특정의 일자를 선택하기 위해서 접합되는지, 또는 "Any" 나 "All" (임의의 요일 또는 모든 요일)나, 요일 지정 (토요일과 일요일을 포함한다)을 위한 "Wk", 주말을 나타내는 "Wd" 등의, 특수한 표기 기호도 사용할 수가 있습니다.

시간대는 예를 들어 다음과 같습니다.

    MoThFrSa1400-2200

이것은, 월요일, 목요일, 금요일, 토요일의 오후 2 시부터 10 시의 사이라고 해석됩니다.

    Wd0600-1800

이것은, 토요일과 일요일의 오전 6 시부터 오후 6 시까지의 의미입니다.

    Any0400-1600

이것은, 임의의 요일의 오전 4 시부터 오후 4 시의 의미입니다.

주의 사항:시간대의 표시는 모두 시스템의 로컬 시간입니다.

함수 parse_lt() (은)는, ASCII 표시의 시간대를 login_time_t 타입의 구조로 변환합니다. 정의는 다음과 같습니다.

typedef struct login_time
{
  u_short       lt_start;   /* 개시시각 */
  u_short       lt_end;     /* 종료시각 */
  u_char        lt_dow;     /* 요일     */
} login_time_t;

lt_startlt_end 필드에는, 정의된 시간의 개시와 종료시간이, 한밤중부터 경과한 만큼 수를 수록하고 있습니다. lt_dow 필드는 비트 필드에서, 각 요일의 1 비트와 미사용의 1 비트를 가지고 있습니다. LTM_* 계열의 매크로는, 비트의 개별의 또는 편성의 검사에 사용됩니다. 이 필드에 비트가 설정되어 있지 않은 경우, 즉, 값 LTM_NONE 하지만 들어가 있을 때, 시간대는 모두 잘못되어 있다고 보입니다. 이것은, 값 login_time_t 의 배열의 종단을 나타내는 관습으로서 사용됩니다. parse_lt() 하지만 LTM_NONE (와)과 동등의 lt_dow 하지만 설정되었다 login_time_t (을)를 돌려주었을 경우, 구문 분석 에러가 있습니다.

나머지의 함수에 의해, 지정되었다 time_t 또는 특별한 시간대 또는 시간대의 배열에 대한 구조체 tm 를 테스트할 수 있습니다. in_ltm() 에 의해, 제 2 파라미터로서 건네받은 구조체 tm 로 지정된 시간이 제 1 파라미터로 정의된 시간내에 있는지 어떤지 결정합니다. 지정의 시간이 시간대내에 있는지 어떤지를 바이너리형의 반환값으로 돌려줍니다. 시간이 소정의 시간대에 없고, 함수의 제 3 파라미터가 NULL 가 아니면, 건네받은 시간에 관계하는 시간대의 종료시간이 돌려주어집니다.

in_ltms() (은)는, in_ltm() (와)과 유사합니다만, 제 1 파라미터가 login_time_t 오브젝트의 배열의 포인터가 아니면 안된다고 하는 점은 다릅니다. 또한 배열은, 요소수가 LC_MAXTIMES (64) 그리고 상한이 규정되고 있어 LTM_NONE 하지만 설정되었다 lt_dow 필드에 의해 종단이 규정되고 있습니다.

반환값

parse_lt() (은)는 해석된 시간대를 포함한 login_time_t 형의 구조체를 돌려줍니다. 구문 분석 에러가 있는 경우, lt_dow 필드에 LTM_NONE (즉 0)(이)가 설정됩니다.

in_ltm() (은)는, 지정된 시간이 제 1 파라미터로서 건네받은 login_time_t 그리고 정의한 시간대내에 있으면, 0 이외의 값을 돌려줍니다.

in_ltms() (은)는, 지정된 시간이 적합하는 최초의 시간대의 인덱스를 돌려주어, 없는 경우는 -1 을 돌려줍니다.

관련 사항

getcap(3), login_cap(3), login_class(3), login.conf(5), termcap(5)

LOGIN_TIMES (3) January 2, 1997

tail head cat sleep
QR code linking to this page


Ben Bullock이 유닉스 매뉴얼 페이지에서 서비스에 대한 의견을 주시기 바랍니다. Privacy policy.

Hang in there, people suffering from natural disasters and deadly diseases - we're putting ribbons on our cars as fast as we can
— Artur Bagyants