what is difference between fgetpos/fsetpos and ftell/fseek

前端 未结 4 932
南方客
南方客 2020-12-04 19:33

What\'s the difference between using the functions fgetpos() and fsetpos() and using the functions ftell() and fseek() to

4条回答
  •  一生所求
    2020-12-04 20:01

    Well, from the manpage we can see that ftell and fseek use type long int to represent offsets (positions) in a file, and may therefore be limited to offsets which can be represented in a long int. (Type long int is not guaranteed to hold values larger than 2**31-1, limiting the maximum offset to 2 gigabytes). The newer fgetpos and fsetpos functions, on the other hand, use a special typedef, fpos_t, to represent the offsets. The type behind this typedef, if chosen appropriately, can represent arbitrarily large offsets, so fgetpos and fsetpos can be used with arbitrarily huge files. fgetpos and fsetpos also record the state associated with multibyte streams.

提交回复
热议问题