From: earnie_boyd AT yahoo DOT com (Earnie Boyd) Subject: fread, fseek and ftell vs. _read and _lseek 18 Jun 1998 19:42:52 -0700 Message-ID: <19980618151243.11713.rocketmail.cygnus.gnu-win32@send1c.yahoomail.com> Reply-To: earnie_boyd AT yahoo DOT com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="-2131475428-832100416-898182762=:22141" To: gw32 ---2131475428-832100416-898182762=:22141 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Based on the documentation from M$ and the sample program I've attached; it is my opinion that fread and fseek should not be used for "text mode" files. Instead, use _read and _lseek. With fread when a ^Z is encountered the file pointer is left indeterminate and so is the data it was reading when the EOF error occured. With _read, the file pointer will be left intact and the data is returned including the ^Z. You can then use _lseek to seek to the character past the EOF ^Z marker, ( e.g.: _lseek( fh, 1L, SEEK_CUR ); ) and then continue reading. You will find attached testseek.c and testseek.dat which demonstrate this. == - \\||// ---o0O0--Earnie--0O0o---- --earnie_boyd AT yahoo DOT com-- ------ooo0O--O0ooo------- _________________________________________________________ DO YOU YAHOO!? Get your free @yahoo.com address at http://mail.yahoo.com ---2131475428-832100416-898182762=:22141 Content-Type: application/x-unknown-content-type-fma000_vim; name="testseek.c" Content-Transfer-Encoding: base64 Content-Description: testseek.c Content-Disposition: vi; filename="testseek.c" I2luY2x1ZGUgPGlvLmg+DQojaW5jbHVkZSA8ZmNudGwuaD4NCiNpbmNsdWRl IDxzdGRsaWIuaD4NCiNpbmNsdWRlIDxzdGRpby5oPg0KI2luY2x1ZGUgPHN0 cmluZy5oPg0KDQp2b2lkDQptYWluKCB2b2lkICkNCnsNCiAgRklMRSAgKnN0 cmVhbTsNCiAgaW50ICAgZmg7DQogIGludCAgIG51bXJlYWQ7DQogIGxvbmcg IHBvczsNCiAgY2hhciAgYnVmZmVyWzMwXTsNCg0KICBzdHJzZXQoYnVmZmVy LCAnXDAnKTsNCiAgc3RyZWFtID0gZm9wZW4oICJ0ZXN0c2Vlay5kYXQiLCAi ciIgKTsgIC8vVXNlIGZvcGVuIHRvIGdldCBhIHN0cmVhbSBpZC4NCiAgZmgg PSBfZmlsZW5vKHN0cmVhbSk7ICAgICAgICAgICAgICAgICAgIC8vZ2V0IHRo ZSBoYW5kbGUgZm9yIF9yZWFkIGFuZCBfbHNlZWsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vSWYgeW91IGRvbid0IG5l ZWQgdGhlIHN0cmVhbSBpZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy95b3UgY291bGQgdXNlIF9vcGVuKCkuDQoNCiAg cHJpbnRmKCAiMCkgdXNlIGZyZWFkLCBmc2VlayBhbmQgZnRlbGxcbiIgKTsN CiAgDQogIGZzZWVrKCBzdHJlYW0sIDBMLCBTRUVLX1NFVCApOyAgICAgICAg ICAvL1NldCBwb2ludGVyIHRvIGJlZ2lubmluZyBvZiBmaWxlDQogIHByaW50 ZiggIjEpIGZzZWVrOiVsZFxuIiwgZnRlbGwoIHN0cmVhbSApICk7DQoNCiAg bnVtcmVhZCA9IGZyZWFkKCBidWZmZXIsIHNpemVvZiggY2hhciApLCAyMiwg c3RyZWFtICk7ICAvL1JlYWQgMjIgY2hhcmFjdGVycw0KICBwcmludGYoICIy KSBmcmVhZDolaTolc1xuIiwgbnVtcmVhZCwgYnVmZmVyICk7ICAgICAgICAg IC8vXlogYXQgYnl0ZSAyMS4NCg0KICBzdHJzZXQoYnVmZmVyLCAnXDAnKTsN CiAgbnVtcmVhZCA9IGZyZWFkKCBidWZmZXIsIHNpemVvZiggY2hhciApLCAy Miwgc3RyZWFtICk7ICAvL1RyeSBhZ2Fpbg0KICBwcmludGYoICIzKSBmcmVh ZDolaTolc1xuIiwgbnVtcmVhZCwgYnVmZmVyICk7DQoNCiAgZnNlZWsoIHN0 cmVhbSwgMUwsIFNFRUtfQ1VSICk7ICAgICAgICAgICAgICAgIC8vVHJ5IHRv IHNlZWsgcGFzdCBeWi4NCg0KICBudW1yZWFkID0gZnJlYWQoIGJ1ZmZlciwg c2l6ZW9mKCBjaGFyICksIDIyLCBzdHJlYW0gKTsgIC8vUmVhZCAyMiBtb3Jl Lg0KICBwcmludGYoICI0KSBmcmVhZDolaTolc1xuIiwgbnVtcmVhZCwgYnVm ZmVyICk7DQoNCiAgcG9zID0gZnRlbGwoIHN0cmVhbSApOyAgICAgICAgICAg ICAgICAgICAgLy8gZ2V0IHRoZSBjdXJyZW50IHBvc2l0aW9uLg0KICBwcmlu dGYoICI1KSBmdGVsbDolbGRcbiIsIHBvcyApOw0KDQogIGZzZWVrKCBzdHJl YW0sIDBMLCBTRUVLX0VORCApOyAgICAgICAgICAgIC8vIHJlcG9ydCB0aGUg cmVhbCBFT0YgcG9zaXRpb24uDQogIHByaW50ZiggIjYpIGZ0ZWxsOiVsZFxu IiwgZnRlbGwoIHN0cmVhbSApICk7DQoNCiAgcHJpbnRmKCAiXG4wKSB1c2Ug X3JlYWQgYW5kIF9sc2Vla1xuIiApOyAgLy9UaGlzIG1ldGhvZCBhY3R1YWxs eSB3b3Jrcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvL2F0IGxlYXN0IG9uIE5ULg0KICBwb3MgPSBfbHNlZWsoIGZo LCAwTCwgU0VFS19TRVQgKTsNCiAgcHJpbnRmKCAiMSkgX2xzZWVrOiVsZFxu IiwgcG9zICk7DQoNCiAgbnVtcmVhZCA9IF9yZWFkKCBmaCwgYnVmZmVyLCAy MiApOw0KICBwcmludGYoICIyKSBfcmVhZDolaTolc1xuIiwgbnVtcmVhZCwg YnVmZmVyICk7DQoNCiAgc3Ryc2V0KGJ1ZmZlciwgJ1wwJyk7DQogIG51bXJl YWQgPSBfcmVhZCggZmgsIGJ1ZmZlciwgMjIgKTsNCiAgcHJpbnRmKCAiMykg X3JlYWQ6JWk6JXNcbiIsIG51bXJlYWQsIGJ1ZmZlciApOw0KDQogIHBvcyA9 IF9sc2VlayggZmgsIDFMLCBTRUVLX0NVUiApOw0KDQogIG51bXJlYWQgPSBf cmVhZCggZmgsIGJ1ZmZlciwgMjIgKTsNCiAgcHJpbnRmKCAiNCkgX3JlYWQ6 JWk6JXNcbiIsIG51bXJlYWQsIGJ1ZmZlciApOw0KDQogIHBvcyA9IF9sc2Vl ayggZmgsIDBMLCBTRUVLX0NVUiApOw0KICBwcmludGYoICI1KSBfbHNlZWs6 JWxkXG4iLCBwb3MgKTsNCg0KICBwb3MgPSBfbHNlZWsoIGZoLCAwTCwgU0VF S19FTkQgKTsNCiAgcHJpbnRmKCAiNikgX2xzZWVrOiVsZFxuIiwgcG9zICk7 DQoNCiAgZmNsb3NlKCBzdHJlYW0gKTsNCn0NCg== ---2131475428-832100416-898182762=:22141 Content-Type: application/x-unknown-content-type-txtfile; name="testseek.dat" Content-Transfer-Encoding: base64 Content-Description: testseek.dat Content-Disposition: attachment; filename="testseek.dat" YWFhYWFhYWFhYWFhYWFhYWFhYWEaDQpiYmJiYmJiYmJiYmJiYmJiYmJiYg0K Y2NjY2NjY2NjY2NjY2NjY2NjY2MNCmRkZGRkZGRkZGRkZGRkZGRkZGRkDQpl ZWVlZWVlZWVlZWVlZWVlZWVlZQ0KZmZmZmZmZmZmZmZmZmZmZmZmZmYNCmdn Z2dnZ2dnZ2dnZ2dnZ2dnZ2dnDQpoaGhoaGhoaGhoaGhoaGhoaGhoaA0KaWlp aWlpaWlpaWlpaWlpaWlpaWkNCmpqampqampqampqampqampqampqDQpra2tr a2tra2tra2tra2tra2traw0KbGxsbGxsbGxsbGxsbGxsbGxsbGwNCm1tbW1t bW1tbW1tbW1tbW1tbW1tDQpubm5ubm5ubm5ubm5ubm5ubm5ubg0Kb29vb29v b29vb29vb29vb29vb28NCnBwcHBwcHBwcHBwcHBwcHBwcHBwDQpxcXFxcXFx cXFxcXFxcXFxcXFxcQ0KcnJycnJycnJycnJycnJycnJycnINCnNzc3Nzc3Nz c3Nzc3Nzc3Nzc3NzDQp0dHR0dHR0dHR0dHR0dHR0dHR0dA0KdXV1dXV1dXV1 dXV1dXV1dXV1dXUNCnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2DQp3d3d3d3d3d3d3 d3d3d3d3d3d3dw0KeHh4eHh4eHh4eHh4eHh4eHh4eHgNCnl5eXl5eXl5eXl5 eXl5eXl5eXl5DQp6enp6enp6enp6enp6enp6enp6eg0K ---2131475428-832100416-898182762=:22141-- - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".