Luaライブラリ 要注意点 ~Debugライブラリ~

os.clock

osライブラリのclockはベンチマークデバッグに利用できるので、osライブラリではなく、あえて、こちらに入れておく。

local x = os.clock() -- この行に来た瞬間のCPU時間
local s = 0
for i=1, 100000 do
   s = s + i
end
print(string.format("elapsed time: %.2f\n", os.clock()-x ))
プロパティ意味
source関数の定義位置。
short_sourcesourceの短縮形。(今ひとつ存在意義は謎)
linedefined該当関数が定義されている行
lastlinedefined該当関数が定義されている最後の行

|what|関数の種類。"Lua"か"C"、メインチャンクの場合は"main"
debug.getinfo(print).what --> "C"
debug.getinfo(myfunc).what -->"Lua"

i = loadstring("return 3")
debug.getinfo(i).what --> "main"

name関数の妥当と思われる名前。数値を指定してgetinfoを呼び出した場合のみ機能する。
namewhatnameフィールドの種類。対象の関数が何者か。"global", "local", "method", "field", ""(空文字)
nups関数が持つ上位値の数。レベルと関連。
activelines関数のアクティブ行の集合のテーブル。デバッガでも作らない限り、まぁあまり気にしなくても良い。
func関数自身。
これだけだと、一見無意味に思えるが、該当レベルで関数がアクティブだったらここに入るというフィルターがかかっている。
print(os.getenv("PATH"))  --> C:\~~;~~

exit

os.exit ([code])

省略可能な code(整数値) でCの関数 exit を呼んでホストプログラムを終了させる。
code のデフォルト値は成功を表すコードである。

os.execute

外部プログラム実行(他言語のsystem関数系に相当する。コンソール窓が出てしまうので、
shell.execute関数(コンソールが出ないもの)を別途C層で用意したほうが良い。

io.popen

osライブラリではないが、os.systemのより便利版として利用できる。いわゆるperlの`(cmd_string)`と同じである。

for dir in io.popen("dir " .. "C:\\" .. " /b /aa"):lines() do
    print(dir)
end

ファイル操作等


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS