Lua-オペレーティングシステムの設備

どのアプリケーションでも、オペレーティングシステムレベルの機能にアクセスする必要があることが多く、オペレーティングシステムライブラリで利用できるようになっています。使用可能な機能のリストを次の表に示します。

シニア番号 ライブラリ/方法と目的
1

os.clock ()

プログラムが使用したCPU時間の概算を秒単位で返します。

2

os.date ([format [, time]])

指定された文字列形式に従ってフォーマットされた、日付と時刻を含む文字列またはテーブルを返します。

3

os.difftime (t2, t1)

時間t1から時間t2までの秒数を返します。POSIX、Windows、およびその他の一部のシステムでは、この値は正確にt2-t1です。

4

os.execute ([command])

この関数は、ANSIC関数システムと同等です。オペレーティングシステムシェルによって実行されるコマンドを渡します。最初の結果は、コマンドが正常に終了した場合はtrue、それ以外の場合はnilです。

5

os.exit ([code [, close])

ANSI C関数exitを呼び出して、ホストプログラムを終了します。コードがtrueの場合、返されるステータスはEXIT_SUCCESSです。コードがfalseの場合、返されるステータスはEXIT_FAILUREです。コードが数値の場合、返されるステータスはこの数値です。

6

os.getenv (varname)

プロセス環境変数varnameの値を返します。変数が定義されていない場合は、nilを返します。

7

os.remove (filename)

指定された名前のファイル(またはPOSIXシステムでは空のディレクトリ)を削除します。この関数が失敗すると、nilに加えて、エラーとエラーコードを説明する文字列が返されます。

8

os.rename (oldname, newname)

oldnameという名前のファイルまたはディレクトリの名前をnewnameに変更します。この関数が失敗すると、nilに加えて、エラーとエラーコードを説明する文字列が返されます。

9

os.setlocale (locale [, category])

プログラムの現在のロケールを設定します。localeは、ロケールを指定するシステム依存の文字列です。categoryは、変更するカテゴリを説明するオプションの文字列です。「all」、「collat​​e」、「ctype」、「monetary」、「numeric」、または「time」。デフォルトのカテゴリは「すべて」です。この関数は、新しいロケールの名前を返します。要求を受け入れることができない場合は、nilを返します。

10

os.time ([table])

引数なしで呼び出された場合の現在の時刻、または指定されたテーブルで指定された日付と時刻を表す時刻を返します。このテーブルには、フィールドyear、month、dayが必要であり、フィールドhour(デフォルトは12)、min(デフォルトは0)、sec(デフォルトは0)、およびisdst(デフォルトはnil)が含まれる場合があります。これらのフィールドの説明については、os.date関数を参照してください。

11

os.tmpname ()

一時ファイルに使用できるファイル名の文字列を返します。ファイルは、使用する前に明示的に開き、不要になったときに明示的に削除する必要があります。

一般的なOS機能

一般的な数学関数を使用した簡単な例を以下に示します。

-- Date with format
io.write("The date is ", os.date("%m/%d/%Y"),"\n")

-- Date and time
io.write("The date and time is ", os.date(),"\n")

-- Time
io.write("The OS time is ", os.time(),"\n")

-- Wait for some time
for i=1,1000000 do
end

-- Time since Lua started
io.write("Lua started before ", os.clock(),"\n")

上記のプログラムを実行すると、次のような出力が得られます。

The date is 01/25/2014
The date and time is 01/25/14 07:38:40
The OS time is 1390615720
Lua started before 0.013

上記の例は一般的な例のほんの一部であり、必要に応じてOSライブラリを使用できるため、すべての関数を使用して理解を深めてください。上で説明したように、ファイルの削除に役立つremove、OSコマンドの実行に役立つexecuteなどの関数があります。