一、access()
这个函数是POSIX要求的。
windows下也有实现,需要包含<io.h>
,查MSDN就行了,具体为_access()
,不过也有access()
。
mode参数,
00
表示EXTST_ONLY02
表示WRITE_ONLY04
表示READ_ONLY06
表示READ_WRITE
不过windows没提供可以用的宏,这一点很烂。
二、Example
vector<string> getReadWriteDiskNames()
{
static constexpr int READ_WRITE = 06;
vector<string>disks;
for (char ch = 'A'; ch <= 'Z'; ++ch) {
const char d[] = { ch,':','\0'};
if (_access(d, READ_WRITE) == 0)
disks.emplace_back(d);
}
return disks;
}