FSEEK(F,0,2); 如果没有SEEK_CUR/SEEK_SET或SEEK_END,这如何工作?

Jer*_*dad 0 c file fseek

我无法理解它,我们不应该有SEEK_CUR/SEEK_SET或SEEK_END吗?为什么它有2个,它是如何工作的?

Ish*_*led 6

SEEK_SET/ SEEK_CUR/ SEEK_END是0/1/2分别,你可以使用数字或定义.

请参阅此处的定义:http://unix.superglobalmegacorp.com/BSD4.4/newsrc/sys/unistd.h.html

/* whence values for lseek(2) */
#define SEEK_SET    0   /* set file offset to offset */
#define SEEK_CUR    1   /* set file offset to current plus offset */
#define SEEK_END    2   /* set file offset to EOF plus offset */
Run Code Online (Sandbox Code Playgroud)

当然,直接使用这些数字是不好的做法,因为它可能会在未来的实施中发生变化(尽管不太可能)