터미널 I/O
터미널 I/O
섹션 제목: “터미널 I/O”CLI 애플리케이션을 위해 stdin에서 읽고 stdout/stderr에 씁니다.
local io = require("io")Stdout에 쓰기
섹션 제목: “Stdout에 쓰기”개행 없이 문자열을 stdout에 씁니다:
local ok, err = io.write("text", "more")| 파라미터 | 타입 | 설명 |
|---|---|---|
... | any | 쓸 값들 (가변 인수, 문자열로 변환됨) |
반환: boolean, error
개행과 함께 출력
섹션 제목: “개행과 함께 출력”탭으로 구분하고 끝에 개행을 추가하여 stdout에 값을 씁니다:
io.print("value1", "value2", 123)| 파라미터 | 타입 | 설명 |
|---|---|---|
... | any | 출력할 값들 (가변 인수) |
반환: boolean, error
Stderr에 쓰기
섹션 제목: “Stderr에 쓰기”탭으로 구분하고 끝에 개행을 추가하여 stderr에 값을 씁니다:
io.eprint("Error:", message)| 파라미터 | 타입 | 설명 |
|---|---|---|
... | any | 출력할 값들 (가변 인수) |
반환: boolean, error
바이트 읽기
섹션 제목: “바이트 읽기”stdin에서 최대 n 바이트를 읽습니다:
local data, err = io.read(1024)| 파라미터 | 타입 | 설명 |
|---|---|---|
n | integer | 읽을 바이트 수 (기본값: 1024, 0 이하의 값은 1024가 됨) |
반환: string, error
줄 읽기
섹션 제목: “줄 읽기”stdin에서 개행까지 한 줄을 읽습니다:
local line, err = io.readline()반환: string, error
Raw 모드
섹션 제목: “Raw 모드”Raw 터미널 모드를 활성화 또는 비활성화합니다 (라인 버퍼링과 에코를 비활성화):
local ok, err = io.raw(true) -- 활성화local ok, err = io.raw(false) -- 비활성화| 파라미터 | 타입 | 설명 |
|---|---|---|
enable | boolean | 활성화하려면 true, 비활성화하려면 false (기본값: true) |
반환: boolean, error
Raw 모드는 참조 카운팅 방식입니다 — 각 io.raw(true)는 io.raw(false)와 짝을 이뤄야 합니다. 프로세스 종료 시 터미널은 자동으로 일반 모드로 재설정됩니다.
출력 플러시
섹션 제목: “출력 플러시”stdout 버퍼를 플러시합니다:
local ok, err = io.flush()반환: boolean, error
명령줄 인수
섹션 제목: “명령줄 인수”명령줄 인수를 가져옵니다:
local args = io.args()반환: string[]
| 조건 | 종류 | 재시도 가능 |
|---|---|---|
| 터미널 컨텍스트 없음 | errors.UNAVAILABLE | 아니오 |
| 쓰기 작업 실패 | errors.INTERNAL | 아니오 |
| 읽기 작업 실패 | errors.INTERNAL | 아니오 |
| 플러시 작업 실패 | errors.INTERNAL | 아니오 |
에러 처리는 에러 처리를 참조하세요.