.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 1980, 1991 Regents of the University of California. .\" All rights reserved. .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\" @(#)alloca.3 5.1 (Berkeley) 5/2/91 .\" .\" Converted Mon Nov 29 11:05:55 1993 by Rik Faith .\" Modified Tue Oct 22 23:41:56 1996 by Eric S. Raymond .\" Modified 2002-07-17, aeb .\" 2008-01-24, mtk: .\" Various rewrites and additions (notes on longjmp() and SIGSEGV). .\" Weaken warning against use of alloca() (as per Debian bug 461100). .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH alloca 3 "19 listopada 2024 r." "Linux man\-pages 6.12" .SH NAZWA alloca \- przydziela pamięć, która jest automatycznie zwalniana .SH BIBLIOTEKA Standardowa biblioteka C (\fIlibc\fP,\ \fI\-lc\fP) .SH SKŁADNIA .nf \fB#include \fP .P \fBvoid *alloca(size_t \fP\fIrozmiar\fP\fB);\fP .fi .SH OPIS Funkcja \fBalloca\fP() przydziela \fIrozmiar\fP bajtów pamięci na ramce stosu procedury, z której została wywołana. Ta tymczasowa przestrzeń jest automatycznie zwalniana po powrocie funkcji, która wywołuje \fBalloca\fP() do miejsca wywołania. .SH "WARTOŚĆ ZWRACANA" Funkcja \fBalloca\fP() zwraca wskaźnik do początku przydzielonej pamięci. Gdy przydzielenie pamięci spowoduje przepełnienie stosu, zachowanie programu nie jest określone. .SH ATRYBUTY Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfejs Atrybut Wartość T{ .na .nh \fBalloca\fP() T} Bezpieczeństwo wątkowe MT\-bezpieczne .TE .SH STANDARDY Brak. .SH HISTORIA PWB, 32V. .SH UWAGI Funkcja \fBalloca\fP() zależy od maszyny i kompilatora. Alokacja zachodzi ze stosu, dlatego jest szybsza niż \fBmalloc\fP(3) i \fBfree\fP(3). W pewnych przypadkach może także uprościć zwalnianie pamięci w aplikacjach, używających \fBlongjmp\fP(3) lub \fBsiglongjmp\fP(3). W pozostałych przypadkach użycie tej funkcji nie jest zalecane. .P Ponieważ przestrzeń alokowana przez \fBalloca\fP() jest przydzielana z przestrzeni stosu, to przestrzeń ta jest automatycznie zwalniana, jeśli nastąpi przeskoczenie powrotu z funkcji przez wywołanie \fBlongjmp\fP(3) lub \fBsiglongjmp\fP(3). .P The space allocated by \fBalloca\fP() is \fInot\fP automatically deallocated if the pointer that refers to it simply goes out of scope; it is automatically deallocated when the caller function returns. .P Pamięci przydzielonej przez \fBalloca\fP() nie można zwalniać za pomocą \fBfree\fP(3)! .P Z konieczności \fBalloca\fP() jest funkcją wbudowaną kompilatora, znaną również jako \fB__builtin_alloca\fP(). Domyślnie, współczesne kompilatory automatycznie tłumaczą wszystkie wystąpienia \fBalloca\fP() na wbudowaną, lecz jest to niedopuszczalne, jeśli zażądano zgodności ze standardami (\fI\-ansi\fP, \fI\-std=c*\fP). W takim przypadku wymagane jest \fI\fP, aby wyemitowana była zależność symboliczna. .P To, że \fBalloca\fP() jest wbudowana, powoduje niemożliwość pobrania jej adresu, jak też niemożliwość zmiany jej zachowania poprzez konsolidację z inną biblioteką, .P Tablice o zmiennym rozmiarze (ang. variable length array \[em] VLA) są częścią standardu C99, opcjonalną od C11, i mogą służyć podobnym celom. Nie portują się jednak do standardu C++ i, będąc zmiennymi, istnieją w swoim zasięgu blokowym i nie posiadają interfejsu przypominającego alokator, co czyni je nieodpowiednimi do implementowania funkcjonalności takich jak \fBstrdupa\fP(3). .SH USTERKI Ze względu na naturę stosu, nie da się sprawdzić, czy alokacja przepełni dostępną przestrzeń, stąd nie ma żadnego powiadomienia o błędzie (jednakże program najprawdopodobniej otrzyma sygnał \fBSIGSEGV\fP, jeśli spróbuje uzyskać dostęp do niedostępnej przestrzeni). .P W wielu systemach \fBalloca\fP() nie może być używana w obrębie listy argumentów w wywołaniu funkcji, gdyż zarezerwowana przez \fBalloca\fP() przestrzeń stosu znalazłaby się w środku przestrzeni stosu przeznaczonej na argumenty funkcji. .SH "ZOBACZ TAKŻE" \fBbrk\fP(2), \fBlongjmp\fP(3), \fBmalloc\fP(3) .PP .SH TŁUMACZENIE Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Adam Byrtek , Andrzej Krzysztofowicz , Robert Luberda i Michał Kułach . .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 .