diff options
Diffstat (limited to 'man2/truncate.2')
-rw-r--r-- | man2/truncate.2 | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/man2/truncate.2 b/man2/truncate.2 new file mode 100644 index 000000000..27c6fe152 --- /dev/null +++ b/man2/truncate.2 @@ -0,0 +1,185 @@ +.\" Copyright (c) 1983, 1991 The Regents of the University of California. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)truncate.2 6.9 (Berkeley) 3/10/91 +.\" +.\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu> +.\" Modified 1996-10-22 by Eric S. Raymond <esr@thyrsus.com> +.\" Modified 1998-12-21 by Andries Brouwer <aeb@cwi.nl> +.\" Modified 2002-01-07 by Michael Kerrisk <mtk16@ext.canterbury.ac.nz> +.\" Modified 2002-04-06 by Andries Brouwer <aeb@cwi.nl> +.\" Modified 2004-06-23 by Michael Kerrisk <mtk16@ext.canterbury.ac.nz> +.\" +.TH TRUNCATE 2 2004-06-23 "Linux 2.6.7" "Linux Programmer's Manual" +.SH NAME +truncate, ftruncate \- truncate a file to a specified length +.SH SYNOPSIS +.B #include <unistd.h> +.br +.B #include <sys/types.h> +.sp +.BI "int truncate(const char *" path ", off_t " length ); +.br +.BI "int ftruncate(int " fd ", off_t " length ); +.SH DESCRIPTION +The +.B truncate +and +.B ftruncate +functions cause the regular file named by +.I path +or referenced by +.I fd +to be truncated to a size of precisely +.I length +bytes. +.LP +If the file previously was larger than this size, the extra data is lost. +If the file previously was shorter, it is extended, and +the extended part reads as zero bytes. +.LP +The file pointer is not changed. +.LP +If the size changed, then the ctime and mtime fields for the file +are updated, and suid and sgid mode bits may be cleared. +.LP +With +.BR ftruncate , +the file must be open for writing; with +.BR truncate , +the file must be writable. +.SH "RETURN VALUE" +On success, zero is returned. On error, \-1 is returned, and +.I errno +is set appropriately. +.SH ERRORS +For +.BR truncate : +.TP +.B EACCES +Search permission is denied for a component of the path prefix, +or the named file is not writable by the user. +(See also +.BR path_resolution (2).) +.TP +.B EFAULT +.I Path +points outside the process's allocated address space. +.TP +.B EFBIG +The argument +.I length +is larger than the maximum file size. (XSI) +.TP +.B EINTR +A signal was caught during execution. +.TP +.B EINVAL +The argument +.I length +is negative or larger than the maximum file size. +.TP +.B EIO +An I/O error occurred updating the inode. +.TP +.B EISDIR +The named file is a directory. +.TP +.B ELOOP +Too many symbolic links were encountered in translating the pathname. +.TP +.B ENAMETOOLONG +A component of a pathname exceeded 255 characters, +or an entire path name exceeded 1023 characters. +.TP +.B ENOENT +The named file does not exist. +.TP +.B ENOTDIR +A component of the path prefix is not a directory. +.TP +.B EROFS +The named file resides on a read-only file system. +.TP +.B ETXTBSY +The file is a pure procedure (shared text) file that is being executed. +.PP +For +.B ftruncate +the same errors apply, but instead of things that can be wrong with +.IR path , +we now have things that can be wrong with +.IR fd : +.TP +.B EBADF +The +.I fd +is not a valid descriptor. +.TP +.BR EBADF " or " EINVAL +The +.I fd +is not open for writing. +.TP +.B EINVAL +The +.I fd +does not reference a regular file. +.SH "CONFORMING TO" +4.4BSD, SVr4 (these function calls first appeared in BSD 4.2). +POSIX 1003.1-1996 has +.BR ftruncate . +POSIX 1003.1-2001 also has +.IR truncate , +as an XSI extension. +.LP +SVr4 documents additional +.B truncate +error conditions EMFILE, EMULTIHP, ENFILE, ENOLINK. SVr4 documents for +.B ftruncate +an additional EAGAIN error condition. +.SH NOTES +The above description is for XSI-compliant systems. +For non-XSI-compliant systems, the POSIX standard allows +two behaviours for +.B ftruncate +when +.I length +exceeds the file length +(note that +.B truncate +is not specified at all in such an environment): +either returning an error, or extending the file. +(Most Unices follow the XSI requirement.) +.\" At the very least: OSF/1, Solaris 7, and FreeBSD conform, mtk, Jan 2002 +.SH "SEE ALSO" +.BR open (2), +.BR path_resolution (2) |