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