The Posix.ProcEnv 구조
The Posix.ProcEnv 구조
POSIX 프로세스 환경 인터페이스를 제공하는 구조예요.
출처: 문서
본문
시놉시스 (Synopsis)
signature POSIX_PROC_ENV
structure ProcEnv : POSIX_PROC_ENV
인터페이스 (Interface)
eqtype pid
eqtype uid
eqtype gid
eqtype file_desc
val uidToWord : uid -> SysWord.word
val wordToUid : SysWord.word -> uid
val gidToWord : gid -> SysWord.word
val wordToGid : SysWord.word -> gid
val getpid : unit -> pid
val getppid : unit -> pid
val getuid : unit -> uid
val geteuid : unit -> uid
val getgid : unit -> gid
val getegid : unit -> gid
val setuid : uid -> unit
val setgid : gid -> unit
val getgroups : unit -> gid list
val getlogin : unit -> string
val getpgrp : unit -> pid
val setsid : unit -> pid
val setpgid : {pid : pid option, pgid : pid option} -> unit
val uname : unit -> (string * string) list
val time : unit -> Time.time
val times : unit
-> {
elapsed : Time.time,
utime : Time.time,
stime : Time.time,
cutime : Time.time,
cstime : Time.time
}
val getenv : string -> string option
val environ : unit -> string list
val ctermid : unit -> string
val ttyname : file_desc -> string
val isatty : file_desc -> bool
val sysconf : string -> SysWord.word
설명 (Description)
eqtype pid
프로세스의 환경 변수에 접근하고, 현재 프로세스·그룹·세션 ID를 조회하는 함수를 담아요.
eqtype uid
getenv는 환경 변수의 값을 돌려주고, setenv는 설정해요.
eqtype gid
그룹 식별자예요.
eqtype file_desc
열린 파일 디스크립터예요.
val uidToWord : uid -> SysWord.word
val wordToUid : SysWord.word -> uid
이 함수들은 추상 사용자 ID와 기본 고유 부호 없는 정수 사이를 변환해요. wordToUid가 유효한 uid를 돌려준다고 보장하지 않는다는 점에 유의하세요.
val gidToWord : gid -> SysWord.word
val wordToGid : SysWord.word -> gid
이들은 추상 그룹 ID와 기본 고유 부호 없는 정수 사이를 변환해요. wordToGid가 유효한 gid를 돌려준다고 보장하지 않는다는 점에 유의하세요.
val getpid : unit -> pid
val getppid : unit -> pid
호출하는 프로세스의 프로세스 ID와 부모 프로세스 ID예요(각각).
val getuid : unit -> uid
val geteuid : unit -> uid
호출하는 프로세스의 실사용자 ID와 유효 사용자 ID예요(각각).
val getgid : unit -> gid
val getegid : unit -> gid
호출하는 프로세스의 실그룹 ID와 유효 그룹 ID예요(각각).
setuid u
실사용자 ID와 유효 사용자 ID를 u로 설정해요.
setgid g
실그룹 ID와 유효 그룹 ID를 g로 설정해요.
val getgroups : unit -> gid list
호출하는 프로세스의 보조 그룹 ID 목록이에요.
val getlogin : unit -> string
호출하는 프로세스와 연관된 사용자 이름, 즉 호출하는 프로세스와 연관된 로그인 이름이에요.
val getpgrp : unit -> pid
호출하는 프로세스의 프로세스 그룹 ID예요.
val setsid : unit -> pid
이 함수는 호출하는 프로세스가 프로세스 그룹 리더가 아니면 새 세션을 만들고, 호출하는 프로세스의 프로세스 그룹 ID를 돌려줘요.
setpgid (SOME pid, SOME pgid)
setpgid (NONE, SOME pgid)
setpgid (SOME pid, NONE)
setpgid (NONE, NONE)
첫 번째(두 번째) 사용법은 프로세스 ID가 pid인 프로세스(각각 호출하는 프로세스)의 프로세스 그룹 ID를 pgid로 설정해요. 세 번째(네 번째) 사용법에서는 프로세스 ID가 pid인 프로세스(각각 호출하는 프로세스)가 프로세스 그룹 리더가 돼요.
val uname : unit -> (string * string) list
최소한 "sysname", "nodename", "release", "version", "machine" 이름을 포함하는 이름-값 쌍 목록이에요. (POSIX 구현은 이 집합 너머의 추가 값을 제공할 수 있어요.) 각 값은 명명된 시스템 구성 요소를 설명하는 문자열이에요.
val time : unit -> Time.time
Epoch 이후 경과한 벽시계 시간이에요.
val times : unit
-> {
elapsed : Time.time,
utime : Time.time,
stime : Time.time,
cutime : Time.time,
cstime : Time.time
}
호출하는 프로세스에 대한 벽시계 시간(elapsed), 사용자 시간(utime), 시스템 시간(stime), 종료된 자식 프로세스의 사용자 CPU 시간(cutime), 종료된 자식 프로세스의 시스템 CPU 시간(cstime)을 포함하는 레코드예요.
getenv name
name=value 형태의 문자열에 대해 환경 목록을 검색하고 name이 있으면 SOME(value)를, 없으면 NONE을 돌려줘요. OS.Process.getEnv와 동등해요.
val environ : unit -> string list
호출하는 프로세스의 환경을 문자열 목록으로 나타낸 것이에요.
val ctermid : unit -> string
호출하는 프로세스의 제어 터미널 경로명을 나타내는 문자열이에요.
ttyname fd
파일 디스크립터 fd와 연관된 터미널의 경로명을 나타내는 문자열을 만들어요. fd가 유효한 터미널 장치를 나타내지 않으면 OS.SysErr를 발생시켜요.
isatty fd
fd가 터미널과 연관된 유효한 파일 디스크립터이면 true를 돌려줘요. fd가 잘못된 파일 디스크립터이면 isatty가 false를 돌려준다는 점에 유의하세요.
sysconf s
POSIX 설정 가능 시스템 변수 s의 정수 값을 돌려줘요. s가 지원되는 POSIX 시스템 변수를 나타내지 않으면 OS.SysErr를 발생시켜요. POSIX가 요구하는 속성은 아래에 설명돼요. 이 목록은 POSIX 준수를 위한 최소 집합이고, 구현이 추가 속성으로 확장할 수 있어요.
"ARG_MAX"
Posix.Process.exec, Posix.Process.exece, Posix.Process.execp 함수에 대한 인자의 최대 길이(바이트)예요. 환경 데이터에도 적용돼요.
"CHILD_MAX"
실사용자 ID와 연관된 동시 프로세스의 최대 수예요.
"CLK_TCK"
초당 클록 틱 수예요.
"NGROUPS_MAX"
유효 그룹 ID에 더해 프로세스와 연관된 보조 그룹 ID의 최대 수예요.
"OPEN_MAX"
한 프로세스가 동시에 열 수 있는 파일의 최대 수예요.
"STREAM_MAX"
한 프로세스가 동시에 열 수 있는 스트림의 최대 수예요.
"TZNAME_MAX"
시간대 이름에 허용되는 최대 바이트 수예요.
"JOB_CONTROL"
구현이 작업 제어를 지원하면 0이 아님.
"SAVED_IDS"
각 프로세스에 저장된 set-user-ID와 저장된 set-group-ID가 있으면 0이 아님.
"VERSION"
버전 번호예요. 추가 정보는 POSIX 표준 1003.1,1996 [CITE]의 섹션 4.8을 참조하세요. SML의 속성은 C의 속성과 같은 이름이지만 "SC" 접두사가 없다는 점에 유의하세요.## 더 알아보기 (Learn more)
- [ Top | Parent | Contents | Index | Root ] Generated April 12
- 2004 Last Modified July 1
- 2002 Comments to John Reppy. This document may be distributed freely over the internet as long as the copyright notice and license terms below are prominently displayed within every machine-readable copy. Copyright © 2004 AT&T and Lucent Technologies. All rights reserved. Permission is granted for internet users to make one paper copy for their own personal use. Further hardcopy reproduction is strictly prohibited. Permission to distribute the HTML document electronically on any medium other than the internet must be requested from the copyright holders by contacting the editors. Printed versions of the SML Basis Manual are available from Cambridge University Press. To order
- please visit www.cup.org (North America) or www.cup.cam.ac.uk (outside North America).