const char* A = ...;
const char* B = ...;
我现在想确定,我应该打开(2)他们两个……
int fda = open(A,...);
int fdb = open(B,...);
为了确定这一点,我想到了stat(2):
struct stat
{
dev_t st_dev;
ino_t st_ino;
...
}
像(伪代码)的东西:
bool IsSameFile(const char* sA,const char* sB)
{
stat A = stat(sA);
stat B = stat(sB);
return A.st_dev == B.st_dev && A.st_ino == B.st_ino;
}
有没有A和B是同一个文件但是IsSameFile会返回false的情况?
是否存在A和B是不同文件但IsSameFile会返回true的情况?
有没有更好的方法来做我想做的事情?