[BZ,#17787] Fix exponents in manual.
Commit Message
On Mon, Jan 05, 2015 at 03:15:24PM +0100, Andreas Schwab wrote:
> Ondřej Bílka <neleai@seznam.cz> writes:
>
> > Is this ok to commit or is there trick to also handle info?
>
> Use different renditions for @iftex and @ifnottex (html output will also
> be verbatim like info output).
>
That makes patch look bit ugly but does job. Ok with this?
* manual/filesys.texi: Fix exponents.
* manual/llio.texi: Likewise.
* manual/stdio.texi: Likewise.
Comments
Ondřej Bílka <neleai@seznam.cz> writes:
> On Mon, Jan 05, 2015 at 03:15:24PM +0100, Andreas Schwab wrote:
>> Ondřej Bílka <neleai@seznam.cz> writes:
>>
>> > Is this ok to commit or is there trick to also handle info?
>>
>> Use different renditions for @iftex and @ifnottex (html output will also
>> be verbatim like info output).
>>
> That makes patch look bit ugly but does job. Ok with this?
You can make it prettier by defining a macro.
Andreas.
On Tue, Jan 06, 2015 at 03:20:32PM +0100, Andreas Schwab wrote:
> Ondřej Bílka <neleai@seznam.cz> writes:
>
> > On Mon, Jan 05, 2015 at 03:15:24PM +0100, Andreas Schwab wrote:
> >> Ondřej Bílka <neleai@seznam.cz> writes:
> >>
> >> > Is this ok to commit or is there trick to also handle info?
> >>
> >> Use different renditions for @iftex and @ifnottex (html output will also
> >> be verbatim like info output).
> >>
> > That makes patch look bit ugly but does job. Ok with this?
>
> You can make it prettier by defining a macro.
>
I did not find easy way to make that decision inline, what I could come
with is put four arguments start line, tex, notex, end line which is
about as ugly as this one.
Ondřej Bílka <neleai@seznam.cz> writes:
> On Tue, Jan 06, 2015 at 03:20:32PM +0100, Andreas Schwab wrote:
>> Ondřej Bílka <neleai@seznam.cz> writes:
>>
>> > On Mon, Jan 05, 2015 at 03:15:24PM +0100, Andreas Schwab wrote:
>> >> Ondřej Bílka <neleai@seznam.cz> writes:
>> >>
>> >> > Is this ok to commit or is there trick to also handle info?
>> >>
>> >> Use different renditions for @iftex and @ifnottex (html output will also
>> >> be verbatim like info output).
>> >>
>> > That makes patch look bit ugly but does job. Ok with this?
>>
>> You can make it prettier by defining a macro.
>>
> I did not find easy way to make that decision inline,
Why inline?
Andreas.
On Tue, Jan 06, 2015 at 07:09:26PM +0100, Andreas Schwab wrote:
> Ondřej Bílka <neleai@seznam.cz> writes:
>
> > On Tue, Jan 06, 2015 at 03:20:32PM +0100, Andreas Schwab wrote:
> >> Ondřej Bílka <neleai@seznam.cz> writes:
> >>
> >> > On Mon, Jan 05, 2015 at 03:15:24PM +0100, Andreas Schwab wrote:
> >> >> Ondřej Bílka <neleai@seznam.cz> writes:
> >> >>
> >> >> > Is this ok to commit or is there trick to also handle info?
> >> >>
> >> >> Use different renditions for @iftex and @ifnottex (html output will also
> >> >> be verbatim like info output).
> >> >>
> >> > That makes patch look bit ugly but does job. Ok with this?
> >>
> >> You can make it prettier by defining a macro.
> >>
> > I did not find easy way to make that decision inline,
>
> Why inline?
>
As I do not know how to do that without having line that contain only
2^63
Ping, if you have better idea I would like it.
On Tue, Jan 06, 2015 at 12:57:20PM +0100, Ondřej Bílka wrote:
> On Mon, Jan 05, 2015 at 03:15:24PM +0100, Andreas Schwab wrote:
> > Ondřej Bílka <neleai@seznam.cz> writes:
> >
> > > Is this ok to commit or is there trick to also handle info?
> >
> > Use different renditions for @iftex and @ifnottex (html output will also
> > be verbatim like info output).
> >
> That makes patch look bit ugly but does job. Ok with this?
>
> * manual/filesys.texi: Fix exponents.
> * manual/llio.texi: Likewise.
> * manual/stdio.texi: Likewise.
>
> diff --git a/manual/filesys.texi b/manual/filesys.texi
> index 7d55b43..936ac2d 100644
> --- a/manual/filesys.texi
> +++ b/manual/filesys.texi
> @@ -1833,7 +1833,12 @@ writing the file. (This is unrelated to @code{st_blocks}.)
> @end deftp
>
> The extensions for the Large File Support (LFS) require, even on 32-bit
> +@iftex
> +machines, types which can handle file sizes up to @math{2^{63}}.
> +@end iftex
> +@ifnottex
> machines, types which can handle file sizes up to @math{2^63}.
> +@end ifnottex
> Therefore a new definition of @code{struct stat} is necessary.
>
> @comment sys/stat.h
> @@ -3072,7 +3077,12 @@ systems do not support this feature and will leave the file unchanged.
> When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the
> @code{truncate} function is in fact @code{truncate64} and the type
> @code{off_t} has 64 bits which makes it possible to handle files up to
> +@iftex
> +@math{2^{63}} bytes in length.
> +@end iftex
> +@ifnottex
> @math{2^63} bytes in length.
> +@end ifnottex
>
> The return value is @math{0} for success, or @math{-1} for an error. In
> addition to the usual file name errors, the following errors may occur:
> @@ -3109,7 +3119,12 @@ The operation was interrupted by a signal.
> This function is similar to the @code{truncate} function. The
> difference is that the @var{length} argument is 64 bits wide even on 32
> bits machines, which allows the handling of files with sizes up to
> -@math{2^63} bytes.
> +@iftex
> +@math{2^{63}} bytes.
> +@end iftex
> +@ifnottex
> +@math{2^{63}} bytes.
> +@end ifnottex
>
> When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} on a
> 32 bits machine this function is actually available under the name
> @@ -3143,7 +3158,12 @@ The example below shows how this works.
> When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the
> @code{ftruncate} function is in fact @code{ftruncate64} and the type
> @code{off_t} has 64 bits which makes it possible to handle files up to
> +@iftex
> +@math{2^{63}} bytes in length.
> +@end iftex
> +@ifnottex
> @math{2^63} bytes in length.
> +@end ifnottex
>
> The return value is @math{0} for success, or @math{-1} for an error. The
> following errors may occur:
> @@ -3189,7 +3209,12 @@ The operation was interrupted by a signal.
> This function is similar to the @code{ftruncate} function. The
> difference is that the @var{length} argument is 64 bits wide even on 32
> bits machines which allows the handling of files with sizes up to
> +@iftex
> +@math{2^{63}} bytes.
> +@end iftex
> +@ifnottex
> @math{2^63} bytes.
> +@end ifnottex
>
> When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} on a
> 32 bits machine this function is actually available under the name
> diff --git a/manual/llio.texi b/manual/llio.texi
> index 4f3fada..60662f7 100644
> --- a/manual/llio.texi
> +++ b/manual/llio.texi
> @@ -150,8 +150,18 @@ or @code{O_CREAT} is set and the file does not already exist.
> If on a 32 bit machine the sources are translated with
> @code{_FILE_OFFSET_BITS == 64} the function @code{open} returns a file
> descriptor opened in the large file mode which enables the file handling
> +@iftex
> +functions to use files up to @math{2^{63}} bytes in size and offset from
> +@end iftex
> +@ifnottex
> functions to use files up to @math{2^63} bytes in size and offset from
> +@end ifnottex
> +@iftex
> +@math{-2^{63}} to @math{2^{63}}. This happens transparently for the user
> +@end iftex
> +@ifnottex
> @math{-2^63} to @math{2^63}. This happens transparently for the user
> +@end ifnottex
> since all of the lowlevel file handling functions are equally replaced.
>
> This function is a cancellation point in multi-threaded programs. This
> @@ -201,8 +211,18 @@ open (@var{filename}, O_WRONLY | O_CREAT | O_TRUNC, @var{mode})
> If on a 32 bit machine the sources are translated with
> @code{_FILE_OFFSET_BITS == 64} the function @code{creat} returns a file
> descriptor opened in the large file mode which enables the file handling
> +@iftex
> +functions to use files up to @math{2^{63}} in size and offset from
> +@end iftex
> +@ifnottex
> functions to use files up to @math{2^63} in size and offset from
> +@end ifnottex
> +@iftex
> +@math{-2^{63}} to @math{2^{63}}. This happens transparently for the user
> +@end iftex
> +@ifnottex
> @math{-2^63} to @math{2^63}. This happens transparently for the user
> +@end ifnottex
> since all of the lowlevel file handling functions are equally replaced.
> @end deftypefn
>
> @@ -422,7 +442,12 @@ not affected by the operation. The value is the same as before the call.
> When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the
> @code{pread} function is in fact @code{pread64} and the type
> @code{off_t} has 64 bits, which makes it possible to handle files up to
> +@iftex
> +@math{2^{63}} bytes in length.
> +@end iftex
> +@ifnottex
> @math{2^63} bytes in length.
> +@end ifnottex
>
> The return value of @code{pread} describes the number of bytes read.
> In the error case it returns @math{-1} like @code{read} does and the
> @@ -451,7 +476,12 @@ version 2.
> This function is similar to the @code{pread} function. The difference
> is that the @var{offset} parameter is of type @code{off64_t} instead of
> @code{off_t} which makes it possible on 32 bit machines to address
> +@iftex
> +files larger than @math{2^{31}} bytes and up to @math{2^{63}} bytes. The
> +@end iftex
> +@ifnottex
> files larger than @math{2^31} bytes and up to @math{2^63} bytes. The
> +@end ifnottex
> file descriptor @code{filedes} must be opened using @code{open64} since
> otherwise the large offsets possible with @code{off64_t} will lead to
> errors with a descriptor in small file mode.
> @@ -623,7 +653,12 @@ not affected by the operation. The value is the same as before the call.
> When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the
> @code{pwrite} function is in fact @code{pwrite64} and the type
> @code{off_t} has 64 bits, which makes it possible to handle files up to
> +@iftex
> +@math{2^{63}} bytes in length.
> +@end iftex
> +@ifnottex
> @math{2^63} bytes in length.
> +@end ifnottex
>
> The return value of @code{pwrite} describes the number of written bytes.
> In the error case it returns @math{-1} like @code{write} does and the
> @@ -652,7 +687,12 @@ version 2.
> This function is similar to the @code{pwrite} function. The difference
> is that the @var{offset} parameter is of type @code{off64_t} instead of
> @code{off_t} which makes it possible on 32 bit machines to address
> +@iftex
> +files larger than @math{2^{31}} bytes and up to @math{2^{63}} bytes. The
> +@end iftex
> +@ifnottex
> files larger than @math{2^31} bytes and up to @math{2^63} bytes. The
> +@end ifnottex
> file descriptor @code{filedes} must be opened using @code{open64} since
> otherwise the large offsets possible with @code{off64_t} will lead to
> errors with a descriptor in small file mode.
> @@ -752,7 +792,12 @@ only for pipes and FIFOs, but on @gnusystems{}, you always get
> When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the
> @code{lseek} function is in fact @code{lseek64} and the type
> @code{off_t} has 64 bits which makes it possible to handle files up to
> +@iftex
> +@math{2^{63}} bytes in length.
> +@end iftex
> +@ifnottex
> @math{2^63} bytes in length.
> +@end ifnottex
>
> This function is a cancellation point in multi-threaded programs. This
> is a problem if the thread allocates some resources (like memory, file
> @@ -775,7 +820,12 @@ descriptors.
> This function is similar to the @code{lseek} function. The difference
> is that the @var{offset} parameter is of type @code{off64_t} instead of
> @code{off_t} which makes it possible on 32 bit machines to address
> +@iftex
> +files larger than @math{2^{31}} bytes and up to @math{2^{63}} bytes. The
> +@end iftex
> +@ifnottex
> files larger than @math{2^31} bytes and up to @math{2^63} bytes. The
> +@end ifnottex
> file descriptor @code{filedes} must be opened using @code{open64} since
> otherwise the large offsets possible with @code{off64_t} will lead to
> errors with a descriptor in small file mode.
> @@ -848,7 +898,12 @@ is transparently replaced by @code{off64_t}.
> This type is used similar to @code{off_t}. The difference is that even
> on 32 bit machines, where the @code{off_t} type would have 32 bits,
> @code{off64_t} has 64 bits and so is able to address files up to
> +@iftex
> +@math{2^{63}} bytes in length.
> +@end iftex
> +@ifnottex
> @math{2^63} bytes in length.
> +@end ifnottex
>
> When compiling with @code{_FILE_OFFSET_BITS == 64} this type is
> available under the name @code{off_t}.
> diff --git a/manual/stdio.texi b/manual/stdio.texi
> index e407170..b50b27e 100644
> --- a/manual/stdio.texi
> +++ b/manual/stdio.texi
> @@ -270,7 +270,12 @@ Locks}.
> @safety{@prelim{}@mtsafe{}@asunsafe{@ascuheap{} @asulock{}}@acunsafe{@acsmem{} @acsfd{} @aculock{}}}
> This function is similar to @code{fopen} but the stream it returns a
> pointer for is opened using @code{open64}. Therefore this stream can be
> +@iftex
> +used even on files larger than @math{2^{31}} bytes on 32 bit machines.
> +@end iftex
> +@ifnottex
> used even on files larger than @math{2^31} bytes on 32 bit machines.
> +@end ifnottex
>
> Please note that the return type is still @code{FILE *}. There is no
> special @code{FILE} type for the LFS interface.
> @@ -336,7 +341,12 @@ interface replaces transparently the old interface.
> @safety{@prelim{}@mtsafe{}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{} @acsfd{}}}
> This function is similar to @code{freopen}. The only difference is that
> on 32 bit machine the stream returned is able to read beyond the
> +@iftex
> +@math{2^{31}} bytes limits imposed by the normal interface. It should be
> +@end iftex
> +@ifnottex
> @math{2^31} bytes limits imposed by the normal interface. It should be
> +@end ifnottex
> noted that the stream pointed to by @var{stream} need not be opened
> using @code{fopen64} or @code{freopen64} since its mode is not important
> for this function.
> @@ -4412,7 +4422,12 @@ This function is similar to @code{ftello} with the only difference that
> the return value is of type @code{off64_t}. This also requires that the
> stream @var{stream} was opened using either @code{fopen64},
> @code{freopen64}, or @code{tmpfile64} since otherwise the underlying
> +@iftex
> +file operations to position the file pointer beyond the @math{2^{31}}
> +@end iftex
> +@ifnottex
> file operations to position the file pointer beyond the @math{2^31}
> +@end ifnottex
> bytes limit might fail.
>
> If the sources are compiled with @code{_FILE_OFFSET_BITS == 64} on a 32
> @@ -4473,7 +4488,12 @@ the @var{offset} parameter is of type @code{off64_t}. This also
> requires that the stream @var{stream} was opened using either
> @code{fopen64}, @code{freopen64}, or @code{tmpfile64} since otherwise
> the underlying file operations to position the file pointer beyond the
> +@iftex
> +@math{2^{31}} bytes limit might fail.
> +@end iftex
> +@ifnottex
> @math{2^31} bytes limit might fail.
> +@end ifnottex
>
> If the sources are compiled with @code{_FILE_OFFSET_BITS == 64} on a 32
> bits machine this function is available under the name @code{fseeko}
On 06/16/2015 01:57 PM, Ondřej Bílka wrote:
> Ping, if you have better idea I would like it.
> On Tue, Jan 06, 2015 at 12:57:20PM +0100, Ondřej Bílka wrote:
>> On Mon, Jan 05, 2015 at 03:15:24PM +0100, Andreas Schwab wrote:
>>> Ondřej Bílka <neleai@seznam.cz> writes:
>>>
>>>> Is this ok to commit or is there trick to also handle info?
>>>
>>> Use different renditions for @iftex and @ifnottex (html output will also
>>> be verbatim like info output).
>>>
>> That makes patch look bit ugly but does job. Ok with this?
>>
>> * manual/filesys.texi: Fix exponents.
>> * manual/llio.texi: Likewise.
>> * manual/stdio.texi: Likewise.
>>
This looks good to me, thanks for fixing this, it has annoyed me
that the PDF looks wrong.
OK to checkin if you verified `make pdf` produces PDF with 2^63
rendered correctly, and the info file also continue to render
2^63 correctly.
Cheers,
Carlos.
On Tue, 16 Jun 2015, Ondřej Bílka wrote:
> Ping, if you have better idea I would like it.
I've looked back at the previous discussion. It seems clear enough that:
* It's a bad idea to duplicate parts of sentences that don't need
duplicating. Conditionals in the main manual should be around lines with
nothing more than the single word using @math.
* It should be possible to use a Texinfo macro for this and so avoid any
conditionals at all in the main manual. Something like (untested)
@iftex
@macro twoexp{exp}
2^{\exp\}
@end macro
@end iftex
@ifnottex
@macro twoexp{exp}
2^{exp}
@end macro
@end itnottex
(and then use @twoexp{63} etc.).
On 06/16/2015 04:07 PM, Joseph Myers wrote:
> On Tue, 16 Jun 2015, Ondřej Bílka wrote:
>
>> Ping, if you have better idea I would like it.
>
> I've looked back at the previous discussion. It seems clear enough that:
>
> * It's a bad idea to duplicate parts of sentences that don't need
> duplicating. Conditionals in the main manual should be around lines with
> nothing more than the single word using @math.
It's bad, but it's not terrible. I would rather see the manual get updated
than nit pick over the exact ways that this can get fixed.
> * It should be possible to use a Texinfo macro for this and so avoid any
> conditionals at all in the main manual. Something like (untested)
>
> @iftex
> @macro twoexp{exp}
> 2^{\exp\}
> @end macro
> @end iftex
> @ifnottex
> @macro twoexp{exp}
> 2^{exp}
> @end macro
> @end itnottex
>
> (and then use @twoexp{63} etc.).
That's a good suggestion.
Cheers,
Carlos.
@@ -1833,7 +1833,12 @@ writing the file. (This is unrelated to @code{st_blocks}.)
@end deftp
The extensions for the Large File Support (LFS) require, even on 32-bit
+@iftex
+machines, types which can handle file sizes up to @math{2^{63}}.
+@end iftex
+@ifnottex
machines, types which can handle file sizes up to @math{2^63}.
+@end ifnottex
Therefore a new definition of @code{struct stat} is necessary.
@comment sys/stat.h
@@ -3072,7 +3077,12 @@ systems do not support this feature and will leave the file unchanged.
When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the
@code{truncate} function is in fact @code{truncate64} and the type
@code{off_t} has 64 bits which makes it possible to handle files up to
+@iftex
+@math{2^{63}} bytes in length.
+@end iftex
+@ifnottex
@math{2^63} bytes in length.
+@end ifnottex
The return value is @math{0} for success, or @math{-1} for an error. In
addition to the usual file name errors, the following errors may occur:
@@ -3109,7 +3119,12 @@ The operation was interrupted by a signal.
This function is similar to the @code{truncate} function. The
difference is that the @var{length} argument is 64 bits wide even on 32
bits machines, which allows the handling of files with sizes up to
-@math{2^63} bytes.
+@iftex
+@math{2^{63}} bytes.
+@end iftex
+@ifnottex
+@math{2^{63}} bytes.
+@end ifnottex
When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} on a
32 bits machine this function is actually available under the name
@@ -3143,7 +3158,12 @@ The example below shows how this works.
When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the
@code{ftruncate} function is in fact @code{ftruncate64} and the type
@code{off_t} has 64 bits which makes it possible to handle files up to
+@iftex
+@math{2^{63}} bytes in length.
+@end iftex
+@ifnottex
@math{2^63} bytes in length.
+@end ifnottex
The return value is @math{0} for success, or @math{-1} for an error. The
following errors may occur:
@@ -3189,7 +3209,12 @@ The operation was interrupted by a signal.
This function is similar to the @code{ftruncate} function. The
difference is that the @var{length} argument is 64 bits wide even on 32
bits machines which allows the handling of files with sizes up to
+@iftex
+@math{2^{63}} bytes.
+@end iftex
+@ifnottex
@math{2^63} bytes.
+@end ifnottex
When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} on a
32 bits machine this function is actually available under the name
@@ -150,8 +150,18 @@ or @code{O_CREAT} is set and the file does not already exist.
If on a 32 bit machine the sources are translated with
@code{_FILE_OFFSET_BITS == 64} the function @code{open} returns a file
descriptor opened in the large file mode which enables the file handling
+@iftex
+functions to use files up to @math{2^{63}} bytes in size and offset from
+@end iftex
+@ifnottex
functions to use files up to @math{2^63} bytes in size and offset from
+@end ifnottex
+@iftex
+@math{-2^{63}} to @math{2^{63}}. This happens transparently for the user
+@end iftex
+@ifnottex
@math{-2^63} to @math{2^63}. This happens transparently for the user
+@end ifnottex
since all of the lowlevel file handling functions are equally replaced.
This function is a cancellation point in multi-threaded programs. This
@@ -201,8 +211,18 @@ open (@var{filename}, O_WRONLY | O_CREAT | O_TRUNC, @var{mode})
If on a 32 bit machine the sources are translated with
@code{_FILE_OFFSET_BITS == 64} the function @code{creat} returns a file
descriptor opened in the large file mode which enables the file handling
+@iftex
+functions to use files up to @math{2^{63}} in size and offset from
+@end iftex
+@ifnottex
functions to use files up to @math{2^63} in size and offset from
+@end ifnottex
+@iftex
+@math{-2^{63}} to @math{2^{63}}. This happens transparently for the user
+@end iftex
+@ifnottex
@math{-2^63} to @math{2^63}. This happens transparently for the user
+@end ifnottex
since all of the lowlevel file handling functions are equally replaced.
@end deftypefn
@@ -422,7 +442,12 @@ not affected by the operation. The value is the same as before the call.
When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the
@code{pread} function is in fact @code{pread64} and the type
@code{off_t} has 64 bits, which makes it possible to handle files up to
+@iftex
+@math{2^{63}} bytes in length.
+@end iftex
+@ifnottex
@math{2^63} bytes in length.
+@end ifnottex
The return value of @code{pread} describes the number of bytes read.
In the error case it returns @math{-1} like @code{read} does and the
@@ -451,7 +476,12 @@ version 2.
This function is similar to the @code{pread} function. The difference
is that the @var{offset} parameter is of type @code{off64_t} instead of
@code{off_t} which makes it possible on 32 bit machines to address
+@iftex
+files larger than @math{2^{31}} bytes and up to @math{2^{63}} bytes. The
+@end iftex
+@ifnottex
files larger than @math{2^31} bytes and up to @math{2^63} bytes. The
+@end ifnottex
file descriptor @code{filedes} must be opened using @code{open64} since
otherwise the large offsets possible with @code{off64_t} will lead to
errors with a descriptor in small file mode.
@@ -623,7 +653,12 @@ not affected by the operation. The value is the same as before the call.
When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the
@code{pwrite} function is in fact @code{pwrite64} and the type
@code{off_t} has 64 bits, which makes it possible to handle files up to
+@iftex
+@math{2^{63}} bytes in length.
+@end iftex
+@ifnottex
@math{2^63} bytes in length.
+@end ifnottex
The return value of @code{pwrite} describes the number of written bytes.
In the error case it returns @math{-1} like @code{write} does and the
@@ -652,7 +687,12 @@ version 2.
This function is similar to the @code{pwrite} function. The difference
is that the @var{offset} parameter is of type @code{off64_t} instead of
@code{off_t} which makes it possible on 32 bit machines to address
+@iftex
+files larger than @math{2^{31}} bytes and up to @math{2^{63}} bytes. The
+@end iftex
+@ifnottex
files larger than @math{2^31} bytes and up to @math{2^63} bytes. The
+@end ifnottex
file descriptor @code{filedes} must be opened using @code{open64} since
otherwise the large offsets possible with @code{off64_t} will lead to
errors with a descriptor in small file mode.
@@ -752,7 +792,12 @@ only for pipes and FIFOs, but on @gnusystems{}, you always get
When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the
@code{lseek} function is in fact @code{lseek64} and the type
@code{off_t} has 64 bits which makes it possible to handle files up to
+@iftex
+@math{2^{63}} bytes in length.
+@end iftex
+@ifnottex
@math{2^63} bytes in length.
+@end ifnottex
This function is a cancellation point in multi-threaded programs. This
is a problem if the thread allocates some resources (like memory, file
@@ -775,7 +820,12 @@ descriptors.
This function is similar to the @code{lseek} function. The difference
is that the @var{offset} parameter is of type @code{off64_t} instead of
@code{off_t} which makes it possible on 32 bit machines to address
+@iftex
+files larger than @math{2^{31}} bytes and up to @math{2^{63}} bytes. The
+@end iftex
+@ifnottex
files larger than @math{2^31} bytes and up to @math{2^63} bytes. The
+@end ifnottex
file descriptor @code{filedes} must be opened using @code{open64} since
otherwise the large offsets possible with @code{off64_t} will lead to
errors with a descriptor in small file mode.
@@ -848,7 +898,12 @@ is transparently replaced by @code{off64_t}.
This type is used similar to @code{off_t}. The difference is that even
on 32 bit machines, where the @code{off_t} type would have 32 bits,
@code{off64_t} has 64 bits and so is able to address files up to
+@iftex
+@math{2^{63}} bytes in length.
+@end iftex
+@ifnottex
@math{2^63} bytes in length.
+@end ifnottex
When compiling with @code{_FILE_OFFSET_BITS == 64} this type is
available under the name @code{off_t}.
@@ -270,7 +270,12 @@ Locks}.
@safety{@prelim{}@mtsafe{}@asunsafe{@ascuheap{} @asulock{}}@acunsafe{@acsmem{} @acsfd{} @aculock{}}}
This function is similar to @code{fopen} but the stream it returns a
pointer for is opened using @code{open64}. Therefore this stream can be
+@iftex
+used even on files larger than @math{2^{31}} bytes on 32 bit machines.
+@end iftex
+@ifnottex
used even on files larger than @math{2^31} bytes on 32 bit machines.
+@end ifnottex
Please note that the return type is still @code{FILE *}. There is no
special @code{FILE} type for the LFS interface.
@@ -336,7 +341,12 @@ interface replaces transparently the old interface.
@safety{@prelim{}@mtsafe{}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{} @acsfd{}}}
This function is similar to @code{freopen}. The only difference is that
on 32 bit machine the stream returned is able to read beyond the
+@iftex
+@math{2^{31}} bytes limits imposed by the normal interface. It should be
+@end iftex
+@ifnottex
@math{2^31} bytes limits imposed by the normal interface. It should be
+@end ifnottex
noted that the stream pointed to by @var{stream} need not be opened
using @code{fopen64} or @code{freopen64} since its mode is not important
for this function.
@@ -4412,7 +4422,12 @@ This function is similar to @code{ftello} with the only difference that
the return value is of type @code{off64_t}. This also requires that the
stream @var{stream} was opened using either @code{fopen64},
@code{freopen64}, or @code{tmpfile64} since otherwise the underlying
+@iftex
+file operations to position the file pointer beyond the @math{2^{31}}
+@end iftex
+@ifnottex
file operations to position the file pointer beyond the @math{2^31}
+@end ifnottex
bytes limit might fail.
If the sources are compiled with @code{_FILE_OFFSET_BITS == 64} on a 32
@@ -4473,7 +4488,12 @@ the @var{offset} parameter is of type @code{off64_t}. This also
requires that the stream @var{stream} was opened using either
@code{fopen64}, @code{freopen64}, or @code{tmpfile64} since otherwise
the underlying file operations to position the file pointer beyond the
+@iftex
+@math{2^{31}} bytes limit might fail.
+@end iftex
+@ifnottex
@math{2^31} bytes limit might fail.
+@end ifnottex
If the sources are compiled with @code{_FILE_OFFSET_BITS == 64} on a 32
bits machine this function is available under the name @code{fseeko}