在 POSIX 系统上,有没有一种可移植的方法来确定文件描述符是否可寻址?我的想法是使用 lseek(fd, 0, SEEK_CUR);
并检查返回值是否为 -1,但我不确定这是否可能产生错误的负面或正面结果。使用 fstat
并对可寻址/不可寻址类型的文件进行假设似乎不是一个好主意。还有其他的想法吗?
在 POSIX 系统上,有没有一种可移植的方法来确定文件描述符是否可寻址?我的想法是使用 lseek(fd, 0, SEEK_CUR);
并检查返回值是否为 -1,但我不确定这是否可能产生错误的负面或正面结果。使用 fstat
并对可寻址/不可寻址类型的文件进行假设似乎不是一个好主意。还有其他的想法吗?
lseek
方法看起来很合理。它肯定不会导致错误的负面影响 - 如果是,那么实现肯定有严重问题。此外,根据POSIX规范,如果描述符是管道、FIFO或套接字,该方法应该失败,因此理论上你也不应该得到错误的结果。唯一剩下的问题是不同系统对规范的遵守情况。然而,与其他可能存在的方法相比,使用该方法肯定更具可移植性。