【发布时间】:2018-05-11 09:06:33
【问题描述】:
我正在尝试为 MacOSX 复制 WIN32 代码,但是我无法复制部分代码
这是代码。
main_int64 pos;
OP_ASSERT(sizeof(pos)==sizeof(fpos_t));
/*Translate the seek to an absolute one.*/
if(_whence==SEEK_CUR)
{
int ret;
ret=fgetpos((FILE *)_stream,(fpos_t *)&pos);
if(ret)return ret;
}
else if(_whence==SEEK_END)pos=_filelengthi64(_fileno((FILE *)_stream));
else if(_whence==SEEK_SET)pos=0;
else return -1;
/*Check for errors or overflow.*/
if(pos<0||_offset<-pos||_offset>OP_INT64_MAX-pos)return -1;
pos+=_offset;
int seeko = fsetpos((FILE *)_stream,(fpos_t *)&pos);
fprintf("BaseTool", "SEEKO VALUE %d \n", seeko);
return seeko;
我被困在了
否则
if(_whence==SEEK_END)pos=_filelengthi64(_fileno((FILE *)_stream));
我不确定如何在基于 mac 的系统中替换这些函数,因为这些是基于 WIN 的函数
【问题讨论】:
-
MacOSX 不是 Linux,但两者(几乎)都是 POSIX。请参阅this 对几乎重复的问题的回答