©
Dieses Dokument verwendetPHP-Handbuch für chinesische WebsitesFreigeben
在头文件 |
|
|
---|---|---|
int fgetpos(FILE * stream,fpos_t * pos); |
|
(直到C99) |
int fgetpos(FILE * restrict stream,fpos_t * restrict pos); |
|
(自C99以来) |
获取文件流的文件位置指示器和当前解析状态(如果有)stream
并将它们存储在指向的对象中pos
。存储的值只对输入有意义fsetpos
。
流 |
- |
文件流来检查 |
---|---|---|
岗位 |
- |
指向fpos_t对象以存储文件位置指示符的指针 |
0
一旦成功,否则非零值。
#include#include #include int main(void){ // prepare a file holding 4 values of type double enum {SIZE = 4}; FILE* fp = fopen("test.bin", "wb"); assert(fp); int rc = fwrite((double[SIZE]){1.1, 2.2, 3.3, 4.4}, sizeof(double), SIZE, fp); assert(rc == SIZE); fclose(fp); // demo using fsetpos to return to the beginning of a file fp = fopen("test.bin", "rb"); fpos_t pos; fgetpos(fp, &pos); // store start of file in pos double d; rc = fread(&d, sizeof d, 1, fp); // read the first double assert(rc == 1); printf("First value in the file: %.1f\n", d); fsetpos(fp,&pos); // move file position back to the start of the file rc = fread(&d, sizeof d, 1, fp); // read the first double again assert(rc == 1); printf("First value in the file again: %.1f\n", d); fclose(fp); // demo error handling rc = fsetpos(stdin, &pos); if(rc) perror("could not fsetpos stdin");}
输出:
First value in the file: 1.1First value in the file again: 1.1could not fsetpos stdin: Illegal seek
C11标准(ISO / IEC 9899:2011):
7.21.9.1 fgetpos函数(p:336)
C99标准(ISO / IEC 9899:1999):
7.19.9.1 fgetpos函数(p:302)
C89 / C90标准(ISO / IEC 9899:1990):
4.9.9.1 fgetpos函数