この初版は、Lua 5.0 向けに書かれました。後々のバージョンについてもほとんど関連性がありますが、一部相違があります。
第 4 版は Lua 5.3 を対象としており、Amazon やその他の書店でお求めいただけます。
この本を購入することで、Lua プロジェクトを支援することにもなります。
![]() |
Lua でプログラムする | ![]() |
第 III 部. 標準ライブラリ 第 22 章. オペレーティングシステムライブラリ |
os.exit
関数は、プログラムの実行を終了します。os.getenv
関数は、環境変数の値を取得します。変数名を受け取り、値のある文字列を返します。
print(os.getenv("HOME")) --> /home/lua変数が定義されていない場合、呼び出しから **nil** が返されます。
os.execute
関数は、システムコマンドを実行します。C の system
関数と等価です。コマンドを含む文字列を受け取り、エラーコードを返します。たとえば Unix と DOS-Windows では、新しいディレクトリを作成するために次のような関数を記述できます。function createDir (dirname) os.execute("mkdir " .. dirname) end
os.execute
関数は強力ですが、システム依存性も高くなります。os.setlocale
関数は、Lua プログラムによって使用される現在のロケールを設定します。ロケールは、文化的または言語的な相違に敏感な動作を定義します。setlocale
関数は、ロケール名と、ロケールが影響する機能を指定するカテゴリという 2 つの文字列パラメータを取ります。ロケールには、6 つのカテゴリがあります。"collate"
は文字列のアルファベット順を制御します。"ctype"
は個々の文字のタイプ(たとえば文字とは何か)と大文字と小文字の間の変換を制御します。"monetary"
は Lua プログラムには影響しません。"numeric"
は数値の形式を制御します。"time"
は日付と時刻の形式を制御します(つまり、os.date
関数)。そして、"all"
は上記のすべての機能を制御します。デフォルトのカテゴリは "all"
であるため、ロケール名を指定してのみ setlocale
を呼び出すと、すべてのカテゴリが設定されます。setlocale
関数は、ロケール名、または失敗した場合(通常はシステムが指定されたロケールをサポートしていないため)は **nil** を返します。
print(os.setlocale("ISO-8859-1", "collate")) --> ISO-8859-1
"numeric"
カテゴリは少し厄介です。ポルトガル語やその他のラテン系言語では、小数点の代わりにコンマを使用して小数点を表しますが、ロケールによって Lua が数値を解析する方法が変わることはありません(print(3,4)
などの式は Lua ではすでに意味があるため)。そのため、コンマ付きの数値を認識できないが、ドット付きの数値も理解できないシステムができてしまう場合があります。
-- set locale for Portuguese-Brazil print(os.setlocale('pt_BR')) --> pt_BR print(3,4) --> 3 4 print(3.4) --> stdin:1: malformed number near `3.4'
Copyright © 2003–2004 Roberto Ierusalimschy. All rights reserved. | ![]() |