bss_file.c: refine UTF-8 logic on Windows.
[openssl.git] / doc / crypto / BIO_s_file.pod
index d449702bfffdd569643a79645e1935988c97271a..188aea347daee06b721664b16d879485a9546e47 100644 (file)
@@ -38,7 +38,7 @@ BIO_reset() attempts to change the file pointer to the start of file
 using fseek(stream, 0, 0).
 
 BIO_seek() sets the file pointer to position B<ofs> from start of file
-using lseek(stream, ofs, 0).
+using fseek(stream, ofs, 0).
 
 BIO_eof() calls feof().
 
@@ -76,6 +76,10 @@ normally be closed so the BIO_NOCLOSE flag should be set.
 Because the file BIO calls the underlying stdio functions any quirks
 in stdio behaviour will be mirrored by the corresponding BIO.
 
+On Windows BIO_new_files reserves for the filename argument to be
+UTF-8 encoded. In other words if you have to make it work in multi-
+lingual environment, encode file names in UTF-8.
+
 =head1 EXAMPLES
 
 File BIO "hello world":
@@ -105,7 +109,7 @@ Alternative technique:
  BIO *out;
  out = BIO_new(BIO_s_file());
  if(out == NULL) /* Error ... */
- if(!BIO_read_filename(out, "filename.txt")) /* Error ... */
+ if(!BIO_write_filename(out, "filename.txt")) /* Error ... */
  BIO_printf(out, "Hello World\n");
  BIO_free(out);
 
@@ -127,6 +131,13 @@ BIO_tell() returns the current file position.
 BIO_read_filename(), BIO_write_filename(),  BIO_append_filename() and
 BIO_rw_filename() return 1 for success or 0 for failure.
 
+=head1 BUGS
+
+BIO_reset() and BIO_seek() are implemented using fseek() on the underlying
+stream. The return value for fseek() is 0 for success or -1 if an error
+occurred this differs from other types of BIO which will typically return
+1 for success and a non positive value if an error occurred.
+
 =head1 SEE ALSO
 
 L<BIO_seek(3)|BIO_seek(3)>, L<BIO_tell(3)|BIO_tell(3)>,