ワイヤレスツールに依存することを避けるために、ioctlを使用してデバイスから直接essidを取得したいのですが、Cではこれは問題になりませんが、Rubyではまったく異なります。
問題は、ioctlの入力/応答として使用されるwireless.hからの構造体に従うことです。
struct iw_point
{
void __user *pointer; /* Pointer to the data (in user space) */
__u16 length; /* number of fields or size in bytes */
__u16 flags; /* Optional params */
};
ポインタ部分は、メモリ領域の有効なアドレス、バイト単位の長さ、フラグフィールドの順である必要があります。Array#packとbit-struct gemを試してみましたが、まだ解決策が見つかりません。
このメモリポインタの問題を回避する方法はありますか?