[英]How do I trim a raw device address area in C++?
我正在使用“/dev/nvme1”作為我的數據路徑,現在我想告訴 SSD 我不再需要 [offset, len],是否有 posix API 可以做到這一點? 向 SSD FTL 發送修整命令。
經過一番研究,我在這里找到了一段代碼:
int block_device_discard(int fd, int64_t offset, int64_t len)
{
uint64_t range[2] = {(uint64_t)offset, (uint64_t)len};
int ret = ioctl(fd, BLKSECDISCARD, range);
if (ret < 0) {
return errno;
}
return 0;
}
請注意,如果您的設備不支持BLKSECDISCARD
,該命令將返回錯誤。
不確定它是否有效,稍后會更新結果。
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.