2016-01-04

Luaのio.tmpfile()の使い道

io.tmpfileを使うと、一時ファイルへのハンドルが得られる。このファイルはプログラム終了時に自動的に削除される。

実は今までこれの使い道が分かってなかった。書きこみしても、ファイルハンドルからはファイル名は得られないし、どう利用するのか?

と思ってたが、書いた後に:seek("set", 0)することで読みこめる事を知った。

$ lua
Lua 5.3.2  Copyright (C) 1994-2015 Lua.org, PUC-Rio
> f = io.tmpfile()
> f:write("happy new year")
file (0x800ffb840)
> f:seek("set", 0)
0
> f:read("a")
happy new year

メモリに載りきらない大きさのデータをあつかう時に良さそうだ。

ひとまず、今作成しているLua用cgiモジュールで、アップロードされたファイルを受けるのに使おう。

FreeBSDでluaposixがインストールできない

./configure LUA='lua' LUA_INCLUDE='-I/home/nyaocat/local/include' --prefix='/home/nyaocat/local/lib/luarocks/rocks/luaposix/33.3.1-1' --libdir='/home/nyaocat/local/lib/luarocks/rocks/luaposix/33.3.1-1/lib' --datadir='/home/nyaocat/local/lib/luarocks/rocks/luaposix/33.3.1-1/lua' --datarootdir='/home/nyaocat/local/lib/luarocks/rocks/luaposix/33.3.1-1' && make clean all
./configure: パーミッションが拒絶されました

Error: Build error: Failed building.

なんでやねーん

ひとつ上へ