32bitのpopen()やsystem()は64bitのiノード番号を扱うことが出来ない

※2013年6月24日、Ubuntu 13.04では修正されていることを確認。



前回C#で書いたツールJavaで書き直したのを参考に、今度はCで書き直して実行してみたところ、やっぱり何もせずに終了してしまったので、何がいけなかったのか調べてみたところ、popen関数で実行するコマンドの引数にiノードが64bitなファイルのパスを渡すとエラーも表示されずに終了することが分かった。system関数でも同様。

まぁ32bit OS + XFS + inode64は鬼門ってことで。

関連:32bitのmonoは64bitのiノード番号を扱うことが出来ない