25 Linux下的off_t类型
off_t类型用于指示文件的偏移量,常就是long类型,其默认为一个32位的整数,在gcc编译中会被编译为long int类型,在64位的Linux系统中则会被编译为long long int,这是一个64位的整数,其定义在unistd.h头文件中可以查看。
242 # ifndef __off_t_defined
243 # ifndef __USE_FILE_OFFSET64
244 typedef __off_t off_t;
245 # else
246 typedef __off64_t off_t;
247 # endif
248 # define __off_t_defined
249 # endif
250 # if defined __USE_LARGEFILE64 && !defined __off64_t_defined
251 typedef __off64_t off64_t;
252 # define __off64_t_defined
253 # endif
329 /* Move FD's file position to OFFSET bytes from the
330 beginning of the file (if WHENCE is SEEK_SET),
331 the current position (if WHENCE is SEEK_CUR),
332 or the end of the file (if WHENCE is SEEK_END).
333 Return the new file position. */
334 #ifndef __USE_FILE_OFFSET64
335 extern __off_t lseek (int __fd, __off_t __offset, int __whence) __THROW;
336 #else
337 # ifdef __REDIRECT_NTH
338 extern __off64_t __REDIRECT_NTH (lseek,
339 (int __fd, __off64_t __offset, int __whence),
340 lseek64);
341 # else
342 # define lseek lseek64
343 # endif
344 #endif
345 #ifdef __USE_LARGEFILE64
346 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
347 __THROW;
348 #endif