簡體   English   中英

如何修剪 C++ 中的原始設備地址區域?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM