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