如何修剪SSD磁盘上的块? [英] how to TRIM a block on SSD disk?

查看:59
本文介绍了如何修剪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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆