如何修剪SSD磁盘上的块? [英] how to TRIM a block on SSD disk?
本文介绍了如何修剪SSD磁盘上的块?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在C程序中,如何告诉Linux内核在SSD磁盘上修剪一个块?我想我必须 open()
设备和 fcntl()
它,但是那又是什么呢?它必须是通用的(即可以使用不同的SSD磁盘)
In a C program, how do I tell the linux kernel to TRIM a block on a SSD disk?
I suppose I have to open()
the device and fcntl()
it something, but what?
It needs to be generic (i.e. work with different SSD disks)
注意:设备上没有ext4文件系统,只有原始数据.
Note: there is no ext4 filesystem on the device, just raw data.
推荐答案
您将其发送为 IOCATADELETE
.像这样:
You would send it IOCATADELETE
. Something like this:
//header - may already be defined
#define IOCATADELETE _IOW('a', 104, off_t[2])
//code
int fd = open("/dev/abc", O_RDWR | O_DIRECT);
off_t ioarg[2];
ioarg[0] = 0; //block number
ioarg[1] = 0; //size
ioctl(fd, IOCATADELETE, ioarg);
close(fd);
这篇关于如何修剪SSD磁盘上的块?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文