我正在使用ioctl()从块设备(Scsi)读取数据。
我注意到,当我读取1024扇区时,ioctl完成时没有任何问题。当我读取2048时,过了很长一段时间后,它返回ENOMEM (errno=12),这甚至没有列在可能的错误列表中(请参阅)
我已经tripple检查了我传递的缓冲区大小是否合适,所以这不可能是这种情况--没有缓冲区溢出。
那么,我如何才能知道使用ioctl读取的最大缓冲区大小?
编辑1
一些附加信息可能会对您有所帮助:
Enterprise Linux Enterprise Linux Server release 5.3 (Carthage)
Red Hat Enterpr
我有一个使用OpenMPI并在Windows和Linux上启动它的应用程序。但是,Windows版本工作正常,但是,在Linux上运行会导致内存分配错误。这个问题发生在某些应用参数上,这需要更多的计算。为了消除内存泄漏,我使用Val差尔检查了Linux应用程序,并获得了一些。毕竟,我试图搜索有关输出的信息,并在堆栈溢出和GitHub(没有足够的声誉附加链接)上找到一些帖子。毕竟,我将openMPI更新为2.0.2,并再次检查应用程序。新.是OpenMPI中的内存泄漏还是我做错了什么?
一项产出:
==16210== 4 bytes in 1 blocks are definitely lost