Lua 学習:LFS ( LuaFileSystem )

2016-01-25 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での blogramのランクインカテゴリは、
6、3、0、0、1、 0、0、0、0、0(40)で、換算ポイント 86pt 。
「Perl」「C言語」「化学業界」「硝子業界」「e-radio」、
「グルコサミン」「Python」「FM COCOLO」「Firefox」bg値変動のみ。
「FM青森」全く変化無し。
・-・ - -・

さて、本文。

先日(2016-01-12)の記事:「Lua 学習:FFI Library
で、
“Lua”と“LuaJIT”の違いについて書いた。

それで、“ULua(Universal Lua Distribution)”からダウンロードしたものには、
“LuaJIT”本体の他に、“LFS”が含まれていた。

つまり、
LuaFileSystem
  File System Library for the Lua Programming Language


そこで、この“LFS”について学習した。
参照したのは「Reference

で、ファイルサイズの取得:
local lfs = require'lfs'         -- モジュールの読み込み
Fname = 'lfs_test.lua' -- 自分自身でテスト
attr = lfs.attributes( Fname ) -- ファイル属性の構造体
print( attr.size ) -- ファイルのサイズ
これだけ?


“LFS”には、以下の様な関数が含まれている。

 lfs.chdir( path )
 lfs.lock_dir( path, [seconds_stale] )
 lfs.currentdir()
 iter, dir_obj = lfs.dir( path )
 lfs.lock( filehandle, mode[, start [, length] ] )
 lfs.link( old, new [, symlink] )
 lfs.mkdir( dirname )
 lfs.rmdir( dirname )
 lfs.setmode( file, mode )
 lfs.symlinkattributes( filepath [, aname] )
 lfs.touch( filepath [, atime [, mtime] ] )
 lfs.unlock( filehandle [, start [, length] ] )


---

上記処理で、ファイルのサイズが取得できたら、
(Lua基本には無い?)バイナリでのファイル読み込みができる。
local lfs = require'lfs'
Fname = 'test.dat' -- テスト用
SZ = lfs.attributes( Fname, 'size' ) -- ファイルサイズ

-- +++++ 以下は、FFI と C Library Function で。
local ffi = require'ffi'
ffi.cdef[[
void* fopen( const char* fname, const char* type );
int fread ( void* buf, int size, int count, void* fp );
int fclose( void* fp );
]]
fnm = ffi.new( 'uint8_t[?]', #Fname )
buf = ffi.new( 'uint8_t[?]', SZ )

fnm = Fname -- この代入(型変換?)、必須。
IN = ffi.C.fopen( fnm, 'rb' )
fsize = ffi.C.fread( buf, 1, SZ, IN )
print( string.char( buf[SZ-1] ) ) -- 確認:ファイル丸ごと読めている!
rtnCD = ffi.C.fclose( IN )
出来た!


Lua 学習は続く。


本日はここまで。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


151226
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
02 | 2017/03 | 03
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク