std

std::os

각 운영체제별로 시스템콜 인터페이스를 제공하는 모듈.

파일시스템이나 입출력, 프로세스, 네트워크, 스레드 등에 있어 각 운영체제가 제공하는 특수한 고유기능을 사용할 수 있다.

std::os::windows, std::os::unix, std::os::linux 등이 있다.

여기서 제공하는 인터페이스를 사용하면 해당 프로그램은 그 운영체제에 종속적인 프로그램이 된다.

 

std::time

시간과 관련한 간단한 처리를 할수있다.

더욱 세밀하고 복잡한 처리는 chrono 등 외부 크레이트를 이용해야 한다.

SystemTime

현재 컴퓨터의 시간을 표현한다. 

운영체제가 인식하는 시간을 사용한다.

시간대는 UTC를 기준으로 한다.

SystemTime::now()를 통해 현재 시간을 구할 수 있다.

Duration

일정 기간(시간의 변화량)을 나타낸다.

시간을 더하려면 SystemTime을 더하는게 아니라 Duration을 더해야한다. 그 결과로 SystemTime 값이 나온다.

SystemTime에서 SystemTime을 뺴면 Duration 값이 나온다.

다만 뺼셈 결과 음수가 나올 수 도 있으니 그러한 상황을 안전하게 처리해주는 duration_since()를 사용하는것이 좋다.

std::fs

파일과 디렉터리를 다루는 모듈.

운영체제에 독립적인 인터페이스를 가진다. 

 

std::path

파일 경로를 나타내는 문자는 각 운영체제마다 다른데, 러스트는 Path와 PathBuf 라는 타입을 사용하여 이를 추상화한다.

덕분에 구분자를 따지지 않고 이식성있게 경로를 나타낼 수 있다.

PathBuf는 경로를 수정할 수 있다.

기타 std 모듈 및 함수

std::os::unix::io::{FromRawFd, IntoRawFd};

file descriptor(파일 서술사)

리눅스 시스템에서 파일, 네트워크 소켓, 키보드 등에 접근할때 사용

std::env

환경변수 설정 및 조회할때 사용, 디렉토리 경로 조회도 가능

std::process

SystemTime::now();

Duration::from_secs(1);

chrono