Tag:

通过ioctl在ruby中获取essid

为了避免依赖无线工具我想用ioctl直接从设备获取essid,在C中这不是问题,但在Ruby中它是完全不同的。 问题是从wireless.h的结构跟随用作ioctl的输入/回复: 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,但还没有找到解决方案。 有没有办法绕过这个内存指针问题?

循环遍历整数中的位,ruby

我正在编写一个程序,其中一个问题是我需要对某些整数中的位模式进行一些分析。 因此,我希望能够做到这样的事情: #Does **NOT** work: num.each_bit do |i| #do something with i end 通过这样做,我能够创造出有效的东西: num.to_s(2).each_char do |c| #do something with c as a char end 然而,这没有我想要的性能 。 我发现你可以这样做: 0.upto(num/2) do |i| #do something with n[i] end 这比each_char方法的性能更差 这个循环将被执行数百万次或更多次,所以我希望它尽可能快。 作为参考,这是整个function @@aHashMap = Hash.new(-1) #The method finds the length of the longes continuous chain of ones, minus […]