我正在使用ioctl()从块设备(Scsi)读取数据。
我注意到,当我读取1024扇区时,ioctl完成时没有任何问题。当我读取2048时,过了很长一段时间后,它返回ENOMEM (errno=12),这甚至没有列在可能的错误列表中(请参阅)
我已经tripple检查了我传递的缓冲区大小是否合适,所以这不可能是这种情况--没有缓冲区溢出。
那么,我如何才能知道使用ioctl读取的最大缓冲区大小?
编辑1
一些附加信息可能会对您有所帮助:
Enterprise Linux Enterprise Linux Server release 5.3 (Carthage)
Red Hat Enterpr
当我搜索“如果malloc和exit with not free会发生什么?”,我可以找到这样的答案:“今天,操作系统将在程序退出后恢复所有分配的内存空间”。
在这个答案中,“恢复”是什么意思?当进程退出时,OS只是删除它的PCB和页表,不是吗?操作系统是否需要执行其他任务才能完全终止进程?在进阶时谢谢。
对不起,我的英语不好。
ps。我的意思是OS Linux