fsetpos64.c

来自「Newlib 嵌入式 C库 标准实现代码」· C语言 代码 · 共 80 行

C
80
字号
/*FUNCTION<<fsetpos64>>---restore position of a large stream or fileINDEX	fsetpos64INDEX	_fsetpos64_rANSI_SYNOPSIS	#include <stdio.h>	int fsetpos64(FILE *<[fp]>, const _fpos64_t *<[pos]>);	int _fsetpos64_r(struct _reent *<[ptr]>, FILE *<[fp]>, 	                 const _fpos64_t *<[pos]>);TRAD_SYNOPSIS	#include <stdio.h>	int fsetpos64(<[fp]>, <[pos]>)	FILE *<[fp]>;	_fpos64_t *<[pos]>;	int _fsetpos64_r(<[ptr]>, <[fp]>, <[pos]>)	struct _reent *<[ptr]>;	FILE *<[fp]>;	_fpos64_t *<[pos]>;DESCRIPTIONObjects of type <<FILE>> can have a ``position'' that records how muchof the file your program has already read.  Many of the <<stdio>> functionsdepend on this position, and many change it as a side effect.You can use <<fsetpos64>> to return the large file identified by <[fp]> to a previous position <<*<[pos]>>> (after first recording it with <<fgetpos64>>).See <<fseeko64>> for a similar facility.RETURNS<<fgetpos64>> returns <<0>> when successful.  If <<fgetpos64>> fails, theresult is <<1>>.  The reason for failure is indicated in <<errno>>:either <<ESPIPE>> (the stream identified by <[fp]> doesn't support64-bit repositioning) or <<EINVAL>> (invalid file position).PORTABILITY<<fsetpos64>> is a glibc extension.Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>,<<lseek64>>, <<read>>, <<sbrk>>, <<write>>.*/#include <stdio.h>#ifdef __LARGE64_FILESint_DEFUN (_fsetpos64_r, (ptr, iop, pos),	struct _reent *ptr _AND	FILE * iop _AND	_CONST _fpos64_t * pos){  int x = _fseeko64_r (ptr, iop, (_off64_t)(*pos), SEEK_SET);  if (x != 0)    return 1;  return 0;}#ifndef _REENT_ONLYint_DEFUN (fsetpos64, (iop, pos),	FILE * iop _AND	_CONST _fpos64_t * pos){  return _fsetpos64_r (_REENT, iop, pos);}#endif /* !_REENT_ONLY */#endif /* __LARGE64_FILES */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?