在看一下代码是遇到逻辑表达式中的(off_t)-1,如下
#ifndef HAVE_PWRITE
static ssize_t pwrite(int fd, void* buf, size_t count, off_t offset) {
off_t orig_offset = lseek(fd, 0, SEEK_CUR);
if (orig_offset == (off_t)-1)
return -1;
if (lseek(fd, offset, SEEK_CUR) == (off_t)-1)
return -1;
ssize_t len = write(fd, buf, count);
if (len < 0)
return len;
if (lseek(fd, orig_offset, SEEK_SET) == (off_t)-1)
return -1;
return len;
}
#endif // !HAVE_PWRITE
在看glog代码时,(off_t)-1困惑了好长时间,在这里,(off_t)-1在这里的逻辑表达式中是类型转化。