2
Tanaka Akira @tanaka_akr
Ruby が Android と Cygwin 向けにクロスコンパイルできなくなってるな。fsid_t ねぇ。 http://t.co/BrbBA6sAKv http://t.co/wFRHZn3iQC
Tanaka Akira @tanaka_akr
bionic には最近 fsid_t が入ったようだな。中身は struct だが。 https://t.co/xBirjCHQDk
Tanaka Akira @tanaka_akr
@n0kada でも struct でありかつ fsid_t が定義されていない (されていなかった) のは Android だけじゃない? だからまだコンパイルに失敗する。
( Φ _⊞) @n0kada
@tanaka_akr あ、__fsid_tはあるけどまだfsid_tは定義されてない環境?
Tanaka Akira @tanaka_akr
@n0kada boron に入れてある Android NDK だと __kernel_fsid_t になってるなぁ。union とか面倒なことはせずに rb_integer_unpack に直接食わせてしまうのがいいような気がする。
Tanaka Akira @tanaka_akr
@n0kada statvfs の f_fsid は符号なしなので、2COMP はいらないんじゃないの。あと、glibc をみてみると big endian 環境では native byte order ではないような。 https://t.co/984qqjlTJp
( Φ _⊞) @n0kada
@tanaka_akr staffsのほうはint val[2]とかint32_t val[2]とか。そもそもこの値ってkernel外で意味ある?
成瀬 @nalsh
@n0kada @tanaka_akr 2つのディレクトリが同じファイルシステムに載っているかどうかはわかる。値をrubyから一定に読み込まればエンディアン間違っててもあんまり問題ではありませんね
( Φ _⊞) @n0kada
@nalsh それはfsidが同一であるかどうかだけでいいのでは
KOSAKI Motohiro @kosaki55tea
@nalsh @n0kada @tanaka_akr わたしも同意見。Rubyスクリプトに数値を露出させる意味はあんまりなくて、同値判定でファイルシステムが異なるかどうかが分かるのが重要
Tanaka Akira @tanaka_akr
@n0kada 提供するなら statvfs の f_fsid の値にするのがまともだと思う。提供しないというのもまともだと思う。Linux の statfs(2) には f_fsid についてかなり怪しいことが書いてある。 http://t.co/EB4dU3JLfA
KOSAKI Motohiro @kosaki55tea
@nalsh @n0kada @tanaka_akr ただ、なんかのworkaroundでtmpfsだけ特別扱いとかはありえるので、値がCと揃っているとちょっとだけプログラミングが楽になる・・・かなあ?(ちょっと自信ない)
成瀬 @nalsh
@kosaki55tea @n0kada @tanaka_akr それはファイルシステムの種類を示すf_typeの方では。fsid_tはそれぞれのファイスシステムに振られるID
成瀬 @nalsh
@tanaka_akr @n0kada まぁ、今回はfsidは特に必要なかったので削っても。
usa @unak
あれ、俺ひょっとしてfsidの意味誤解してたりしないだろうな。
usa @unak
f_typeとかも大概ひどい気がするのでちゃんとwarpしろよという気がする。
Tanaka Akira @tanaka_akr
@n0kada さらに GNU/Hurd では (statfs の) f_fsid も整数らしい。 https://t.co/wb5fGqvJeW
成瀬 @nalsh
@unak なぜ素直にmagicを返さないのか理解に苦しみはする
usa @unak
@nalsh f_fstypenameがないならrubyで実装して返せよ! と言いたかった。
成瀬 @nalsh
@unak あ、はい。まぁ、そうっすね
成瀬 @nalsh
@nalsh @unak と思ったが、あれ、ext2/3/4の区別取れんのかな
残りを読む(12)

コメント

ログインして広告を非表示にする
ログインして広告を非表示にする