xref: /src/lib/libutil++/freebsd__FILE_up.3 (revision 159503125826bc2d3b988921e7e85735ee09ad46)
1*b3127a2dSJohn Baldwin.\"
2*b3127a2dSJohn Baldwin.\" SPDX-License-Identifier: BSD-2-Clause
3*b3127a2dSJohn Baldwin.\"
4*b3127a2dSJohn Baldwin.\" Copyright (c) 2025 Chelsio Communications, Inc.
5*b3127a2dSJohn Baldwin.\" Written by: John Baldwin <jhb@FreeBSD.org>
6*b3127a2dSJohn Baldwin.\"
7*b3127a2dSJohn Baldwin.Dd July 31, 2025
8*b3127a2dSJohn Baldwin.Dt FREEBSD::FILE_UP 3
9*b3127a2dSJohn Baldwin.Os
10*b3127a2dSJohn Baldwin.Sh NAME
11*b3127a2dSJohn Baldwin.Nm freebsd::FILE_up
12*b3127a2dSJohn Baldwin.Nd std::unique_ptr specialization for stdio FILE objects
13*b3127a2dSJohn Baldwin.Sh LIBRARY
14*b3127a2dSJohn Baldwin.Lb libutil++
15*b3127a2dSJohn Baldwin.Sh SYNOPSIS
16*b3127a2dSJohn Baldwin.In libutil++.hh
17*b3127a2dSJohn Baldwin.Ft using FILE_up = std::unique_ptr<FILE, fclose_deleter>;
18*b3127a2dSJohn Baldwin.Sh DESCRIPTION
19*b3127a2dSJohn BaldwinThis class is a specialization of
20*b3127a2dSJohn Baldwin.Vt std::unique_ptr
21*b3127a2dSJohn Baldwinfor stdio
22*b3127a2dSJohn Baldwin.Vt FILE
23*b3127a2dSJohn Baldwinobjects.
24*b3127a2dSJohn BaldwinWhen a
25*b3127a2dSJohn Baldwin.Vt FILE
26*b3127a2dSJohn Baldwinobject managed by an instance of this class is disposed,
27*b3127a2dSJohn Baldwin.Xr fclose 3
28*b3127a2dSJohn Baldwinis invoked to dispose of the
29*b3127a2dSJohn Baldwin.Vt FILE
30*b3127a2dSJohn Baldwinobject.
31*b3127a2dSJohn Baldwin.Sh EXAMPLES
32*b3127a2dSJohn Baldwin.Bd -literal -offset indent
33*b3127a2dSJohn Baldwinfreebsd::FILE_up fp(fopen("foo.txt", "w"));
34*b3127a2dSJohn Baldwinif (!fp)
35*b3127a2dSJohn Baldwin	err(1, "fopen");
36*b3127a2dSJohn Baldwinfprintf(fp.get(), "hello\n");
37*b3127a2dSJohn Baldwin// `fp' is implicitly closed on destruction
38*b3127a2dSJohn Baldwin.Ed
39*b3127a2dSJohn Baldwin.Sh SEE ALSO
40*b3127a2dSJohn Baldwin.Xr fclose 3 ,
41*b3127a2dSJohn Baldwin.Xr fopen 3
42