Index: libcfa/src/fstream.cfa
===================================================================
--- libcfa/src/fstream.cfa	(revision bbbd2c445b2101bd6d0003a567ec6ef306f5d96e)
+++ libcfa/src/fstream.cfa	(revision 00e9be94eec3b41099f7decdab5a57d6edea62ed)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Apr 27 22:08:57 2021
-// Update Count     : 442
+// Last Modified On : Wed Apr 28 20:37:53 2021
+// Update Count     : 445
 //
 
@@ -114,4 +114,8 @@
 } // fail
 
+void clear( ofstream & os ) {
+	clearerr( (FILE *)(os.file$) );
+} // clear
+
 int flush( ofstream & os ) {
 	return fflush( (FILE *)(os.file$) );
@@ -207,4 +211,5 @@
 } // nl
 
+
 // *********************************** ifstream ***********************************
 
@@ -240,9 +245,13 @@
 } // fail
 
+void clear( ifstream & is ) {
+	clearerr( (FILE *)(is.file$) );
+} // clear
+
 void ends( ifstream & is ) {
 	if ( is.acquired$ ) { is.acquired$ = false; release( is ); }
 } // ends
 
-int eof( ifstream & is ) {
+bool eof( ifstream & is ) {
 	return feof( (FILE *)(is.file$) );
 } // eof
@@ -273,5 +282,5 @@
 } // close
 
-ifstream & read( ifstream & is, char * data, size_t size ) {
+ifstream & read( ifstream & is, char data[], size_t size ) {
 	if ( fail( is ) ) {
 		abort | IO_MSG "attempt read I/O on failed stream";
Index: libcfa/src/fstream.hfa
===================================================================
--- libcfa/src/fstream.hfa	(revision bbbd2c445b2101bd6d0003a567ec6ef306f5d96e)
+++ libcfa/src/fstream.hfa	(revision 00e9be94eec3b41099f7decdab5a57d6edea62ed)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Apr 27 22:00:30 2021
-// Update Count     : 226
+// Last Modified On : Wed Apr 28 20:37:57 2021
+// Update Count     : 230
 //
 
@@ -70,4 +70,5 @@
 
 bool fail( ofstream & );
+void clear( ofstream & );
 int flush( ofstream & );
 void open( ofstream &, const char name[], const char mode[] ); // FIX ME: use default = "w"
@@ -119,9 +120,10 @@
 
 bool fail( ifstream & is );
-int eof( ifstream & is );
+void clear( ifstream & );
+bool eof( ifstream & is );
 void open( ifstream & is, const char name[], const char mode[] ); // FIX ME: use default = "r"
 void open( ifstream & is, const char name[] );
 void close( ifstream & is );
-ifstream & read( ifstream & is, char * data, size_t size );
+ifstream & read( ifstream & is, char data[], size_t size );
 ifstream & ungetc( ifstream & is, char c );
 
Index: libcfa/src/iostream.hfa
===================================================================
--- libcfa/src/iostream.hfa	(revision bbbd2c445b2101bd6d0003a567ec6ef306f5d96e)
+++ libcfa/src/iostream.hfa	(revision 00e9be94eec3b41099f7decdab5a57d6edea62ed)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Apr 27 17:59:21 2021
-// Update Count     : 398
+// Last Modified On : Wed Apr 28 20:37:56 2021
+// Update Count     : 401
 //
 
@@ -52,6 +52,7 @@
 	
 trait ostream( ostype & | basic_ostream( ostype ) ) {
+	bool fail( ostype & );								// operation failed?
+	void clear( ostype & );
 	int flush( ostype & );
-	bool fail( ostype & );								// operation failed?
 	void open( ostype &, const char name[], const char mode[] );
 	void close( ostype & );
@@ -302,12 +303,13 @@
 	int fmt( istype &, const char format[], ... ) __attribute__(( format(scanf, 2, 3) ));
 	istype & ungetc( istype &, char );
-	int eof( istype & );
+	bool eof( istype & );
 }; // basic_istream
 
 trait istream( istype & | basic_istream( istype ) ) {
 	bool fail( istype & );
+	void clear( istype & );
 	void open( istype & is, const char name[] );
 	void close( istype & is );
-	istype & read( istype &, char *, size_t );
+	istype & read( istype &, char [], size_t );
 	void acquire( istype & );							// concurrent access
 }; // istream
