.\" -*- coding: UTF-8 -*-
.\" Copyright (c) 1983, 1991 The Regents of the University of California.
.\" All rights reserved.
.\"
.\" SPDX-License-Identifier: BSD-4-Clause-UC
.\"
.\"     @(#)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 <mtk.manpages@gmail.com>
.\" Modified 2002-04-06 by Andries Brouwer <aeb@cwi.nl>
.\" Modified 2004-06-23 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH truncate 2 "2 maja 2024 r." "Linux man\-pages 6.8" 
.SH NAZWA
truncate, ftruncate \- ustawia długość pliku
.SH BIBLIOTEKA
Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP)
.SH SKŁADNIA
.nf
\fB#include <unistd.h>\fP
.P
\fBint truncate(const char *\fP\fIpath\fP\fB, off_t \fP\fIlength\fP\fB);\fP
\fBint ftruncate(int \fP\fIfd\fP\fB, off_t \fP\fIlength\fP\fB);\fP
.fi
.P
.RS -4
Wymagane ustawienia makr biblioteki glibc (patrz \fBfeature_test_macros\fP(7)):
.RE
.P
\fBtruncate\fP():
.nf
.\"    || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
    _XOPEN_SOURCE >= 500
        || /* Od glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
        || /* glibc <= 2.19: */ _BSD_SOURCE
.fi
.P
\fBftruncate\fP():
.nf
.\"    || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
    _XOPEN_SOURCE >= 500
        || /* Since glibc 2.3.5: */ _POSIX_C_SOURCE >= 200112L
        || /* glibc <= 2.19: */ _BSD_SOURCE
.fi
.SH OPIS
Funkcje \fBtruncate\fP() i \fBftruncate\fP() powodują, że zwykły plik nazwany za
pomocą \fIpath\fP lub do którego odnosi się \fIfd\fP, jest docinany do długości
dokładnie \fIlength\fP bajtów.
.P
Jeśli plik był wcześniej większy od tego rozmiaru, dodatkowe dane są
tracone. Jeśli plik był wcześniej mniejszy, jest powiększany, a odczyt z
nowej części zwróci bajty null (\[Bq]\e0\[rq]).
.P
Przesunięcie pliku nie ulega zmianie.
.P
Jeśli rozmiar pliku się zmieni, aktualizowane są pola st_ctime i st_mtime
pliku (odpowiednio: czas ostatniej zmiany statusu i czas ostatniej
modyfikacji; zob. \fBinode\fP(7)), a bity trybu set\-user\-ID i set\-group\-ID mogą
być wyczyszczone.
.P
Przy \fBftruncate\fP(), plik musi być otwarty do odczytu; przy \fBtruncate\fP(),
plik musi być zapisywalny.
.SH "WARTOŚĆ ZWRACANA"
Po pomyślnym zakończeniu zwracane jest zero. Po błędzie zwracane jest \-1 i
ustawiane \fIerrno\fP, wskazując błąd.
.SH BŁĘDY
Dla \fBtruncate\fP():
.TP 
\fBEACCES\fP
Brak praw do przeszukiwania na składowej ścieżki lub nazwany plik nie jest
zapisywalny przez użytkownika (zob. też \fBpath_resolution\fP(7))
.TP 
\fBEFAULT\fP
Argument \fIpath\fP wskazuje poza przydzieloną procesowi przestrzeń adresową.
.TP 
\fBEFBIG\fP
Argument \fIlength\fP jest większy, niż maksymalny rozmiar pliku. (XSI)
.TP 
\fBEINTR\fP
Wywołanie zostało przerwane przez procedurę obsługi sygnału, w trakcie
zablokowania w oczekiwaniu na ukończenie; zob. \fBfcntl\fP(2) i \fBsignal\fP(7).
.TP 
\fBEINVAL\fP
Argument \fIlength\fP jest ujemny lub większy, niż maksymalny rozmiar pliku.
.TP 
\fBEIO\fP
Podczas aktualizacji i\-węzła wystąpił błąd wejścia/wyjścia.
.TP 
\fBEISDIR\fP
Wskazana nazwa pliku jest nazwą katalogu.
.TP 
\fBELOOP\fP
Natrafiono na zbyt wiele dowiązań symbolicznych podczas tłumaczenia ścieżki.
.TP 
\fBENAMETOOLONG\fP
Składowa ścieżki przekroczyła 255 znaków lub cała ścieżka przekroczyła 1023
znaków.
.TP 
\fBENOENT\fP
Plik wskazywany przez nazwę nie istnieje.
.TP 
\fBENOTDIR\fP
Składowa ścieżki nie jest katalogiem.
.TP 
\fBEPERM\fP
.\" This happens for at least MSDOS and VFAT filesystems
.\" on kernel 2.6.13
System plików nie obsługuje powiększenia pliku poza jego aktualny rozmiar.
.TP 
\fBEPERM\fP
Operacja zablokowana, z powodu zapieczętowania pliku (ang. file seal);
zob. \fBfcntl\fP(2).
.TP 
\fBEROFS\fP
Podany plik znajduje się na systemie plików przeznaczonym tylko do odczytu.
.TP 
\fBETXTBSY\fP
Plik jest plikiem wykonywalnym, który jest obecnie wykonywany.
.P
W przypadku \fBftruncate\fP() stosują się te same błędy, lecz zamiast
nieprawidłowości dotyczących ścieżki \fIpath\fP, tu błędy będą dotyczyć
deskryptora pliku \fIfd\fP:
.TP 
\fBEBADF\fP
\fIfd\fP nie jest prawidłowym deskryptorem pliku.
.TP 
\fBEBADF\fP lub \fBEINVAL\fP
\fIfd\fP nie jest otwarty do zapisu.
.TP 
\fBEINVAL\fP
\fIfd\fP nie wskazuje na zwykły plik lub obiekt pamięci dzielonej POSIX.
.TP 
\fBEINVAL\fP lub \fBEBADF\fP
Deskryptor pliku \fIfd\fP nie jest otwarty do zapisu. POSIX zezwala na, a
przenośne aplikacje powinny obsługiwać, oba błędy w tym przypadku (błędem w
Linuksie jest \fBEINVAL\fP).
.SH WERSJE
.\" At the very least: OSF/1, Solaris 7, and FreeBSD conform, mtk, Jan 2002
Detale w OPISIE dotyczą systemów zgodnych z XSI. W systemach, które nie są
zgodne z XSI, standard POSIX zezwala na dwa typy zachowań w przypadku
\fBftruncate\fP(), gdy \fIlength\fP przekracza długość pliku (proszę zauważyć, że
\fBtruncate\fP() w ogóle nie jest wspomniane w takim środowisku): albo
zwrócenie błędu, albo zwiększenie pliku. Podobnie jak większość
implementacji Uniksa, Linux podąża za wymaganiem XSI na natywnych systemach
plików. Jednak niektóre nierodzime systemy plików nie zezwalają na używanie
\fBtruncate\fP() i \fBftruncate\fP() do zwiększenia pliku poza jego aktualną
długość: istotnym przykładem w Linuksie jest tu VFAT.
.P
Na niektórych architekturach 32\-bitowych, sygnatura wywołania dla tych
wywołań systemowych może być zróżnicowana, z powodów opisanych w
\fBsyscall\fP(2).
.SH STANDARDY
POSIX.1\-2008.
.SH HISTORIA
.\" POSIX.1-1996 has
.\" .BR ftruncate ().
.\" POSIX.1-2001 also has
.\" .BR truncate (),
.\" as an XSI extension.
.\" .P
.\" SVr4 documents additional
.\" .BR truncate ()
.\" error conditions EMFILE, EMULTIHP, ENFILE, ENOLINK.  SVr4 documents for
.\" .BR ftruncate ()
.\" an additional EAGAIN error condition.
POSIX.1\-2001, 4.4BSD, SVr4 (first appeared in 4.2BSD).
.P
Pierwotne linuksowe wywołania \fBtruncate\fP() i \fBftruncate\fP() nie były
zaprojektowane do obsługi przesunięć dużych plików. W konsekwencji, Linux
2.4 dodał wywołania systemowe \fBtruncate64\fP()  i \fBftruncate64\fP(), które
potrafią obsługiwać duże pliki. Detale te są jednak ignorowane przez
aplikacje używające glibc, ponieważ jej funkcje opakowujące obsługują nowsze
wywołania systemowe, gdy tylko są dostępne, w sposób przezroczysty.
.SH UWAGI
\fBftruncate\fP() można użyć również do ustawienia rozmiaru obiektu pamięci
dzielonej POSIX; zob. \fBshm_open\fP(3).
.SH USTERKI
.\" http://sourceware.org/bugzilla/show_bug.cgi?id=12037
Błąd w pliku nagłówka w glibc 2.12 powodował, że minimalną wartością
\fB_POSIX_C_SOURCE\fP wymaganą do ujawnienia deklaracji \fBftruncate\fP() była
200809L zamiast 200112L. Poprawiono to w następnych wersjach glibc.
.SH "ZOBACZ TAKŻE"
\fBtruncate\fP(1), \fBopen\fP(2), \fBstat\fP(2), \fBpath_resolution\fP(7)
.PP
.SH TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są:
Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>
i
Michał Kułach <michal.kulach@gmail.com>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
