2 .\" Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved.
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .\" Copyright (c) 2015, Joyent, Inc. All rights reserved.
7 .TH LF64 5 "Jan 14, 2015"
9 lf64 \- transitional interfaces for 64-bit file offsets
12 The data types, interfaces, and macros described on this page provide explicit
13 access to 64-bit file offsets. They are accessible through the transitional
14 compilation environment described on the \fBlfcompile64\fR(5) manual page. The
15 function prototype and semantics of a transitional interface are equivalent to
16 those of the standard version of the call, except that relevant data types are
20 The following tables list the standard data or struct types in the left-hand
21 column and their corresponding explicit 64-bit file offset types in the
22 right-hand column, grouped by header. The absence of an entry in the left-hand
23 column indicates that there is no existing explicit 32-bit type that
24 corresponds to the 64-bit type listed in the right\(emhand column. Note that
25 in a 64-bit application, the standard definition is equivalent to the 64-bit
26 file offset definition.
32 struct \fBaiocb\fR struct \fBaiocb64\fR
33 \fBoff_t\fR aio_offset; \fBoff64_t\fR aio_offset;
36 .SS "<\fBsys/dirent.h\fR>"
41 struct \fBdirent\fR struct \fBdirent64\fR
42 \fBino_t\fR d_ino; \fBino64_t\fR d_ino;
43 \fBoff_t\fR d_off; \fBoff64_t\fR d_off;
46 .SS "<\fBsys/fcntl.h\fR>"
51 struct \fBflock\fR struct \fBflock64\fR
52 \fBoff_t\fR l_start; \fBoff64_t\fR l_start;
53 \fBoff_t\fR l_len; \fBoff64_t\fR l_len;
54 \fBF_SETLK\fR \fBF_SETLK64\fR
55 \fBF_SETLKW\fR \fBF_SETLKW64\fR
56 \fBF_GETLK\fR \fBF_GETLK64\fR
57 \fBF_FREESP\fR \fBF_FREESP64\fR
58 \fBF_ALLOCSP\fR \fBF_ALLOCSP64\fR
62 .SS "<\fBsys/stdio.h\fR>"
66 \fBfpos_t\fR \fBfpos64_t\fR
69 .SS "<\fBsys/resource.h\fR>"
74 \fBrlim_t\fR \fBrlim64_t\fR
75 struct \fBrlimit\fR struct \fBrlimit64\fR
76 \fBrlim_t\fR rlim_cur; \fBrlim64_t\fR rlim_cur;
77 \fBrlim_t\fR rlim_max; \fBrlim64_t\fR rlim_max;
78 \fBRLIM_INFINITY\fR \fBRLIM64_INFINITY\fR
79 \fBRLIM_SAVED_MAX\fR \fBRLIM64_SAVED_MAX\fR
80 \fBRLIM_SAVED_CUR\fR \fBRLIM64_SAVED_CUR\fR
83 .SS "<\fBsys/stat.h\fR>"
88 struct \fBstat\fR struct \fBstat64\fR
89 \fBino_t\fR st_ino; \fBino64_t\fR st_ino;
90 \fBoff_t\fR st_size; \fBoff64_t\fR st_size;
91 \fBblkcnt_t\fR st_blocks; \fBblkcnt64_t\fR st_blocks;
94 .SS "<\fBsys/statvfs.h\fR>"
99 struct \fBstatvfs\fR struct \fBstatvfs64\fR
100 \fBfsblkcnt_t\fR f_blocks; \fBfsblkcnt64_t\fR f_blocks;
101 \fBfsblkcnt_t\fR f_bfree; \fBfsblkcnt64_t\fR f_bfree;
102 \fBfsblkcnt_t\fR f_bavial; \fBfsblkcnt64_t\fR f_bavial;
103 \fBfsfilcnt_t\fR f_files; \fBfsfilcnt64_t\fR f_files;
104 \fBfsfilcnt_t\fR f_ffree; \fBfsfilcnt64_t\fR f_ffree;
105 \fBfsfilcnt_t\fR f_favail; \fBfsfilcnt64_t\fR f_favail;
108 .SS "<\fBsys/types.h\fR>"
113 \fBoff_t\fR; \fBoff64_t\fR;
114 \fBino_t\fR; \fBino64_t\fR;
115 \fBblkcnt_t\fR; \fBblkcnt64_t\fR;
116 \fBfsblkcnt_t\fR; \fBfsblkcnt64_t\fR;
117 \fBfsfilcnt_t\fR; \fBfsfilcnt64_t\fR;
120 .SS "<\fBunistd.h\fR>"
125 \fB_LFS64_LARGEFILE\fR
129 .SS "<\fBsys/unistd.h\fR>"
134 \fB_CS_LFS64_CFLAGS\fR
135 \fB_CS_LFS64_LDFLAGS\fR
137 \fB_CS_LFS64_LINTFLAGS\fR
140 .SS "System Interfaces"
142 The following tables display the standard API and the corresponding
143 transitional interfaces for 64-bit file offsets. The interfaces are grouped by
144 header. The interface name and the affected data types are displayed in courier
151 int \fBaio_cancel\fR(..., int \fBaio_cancel64\fR(...,
152 struct \fBaiocb\fR *); struct \fBaiocb64\fR *);
153 int \fBaio_error\fR( int \fBaio_error64\fR(
154 const struct \fBaiocb\fR *); const struct \fBaiocb64\fR *);
155 int \fBaio_fsync\fR(..., int \fBaio_fsync64\fR(...,
156 struct \fBaiocb\fR *); struct \fBaiocb64\fR *);
157 int \fBaio_read\fR(struct \fBaiocb\fR *); int \fBaio_read64\fR(struct \fBaiocb64\fR *);
158 int \fBaio_return\fR(struct \fBaiocb\fR *); int \fBaio_return64\fR(struct \fBaiocb64\fR *);
159 int \fBaio_suspend\fR( int \fBaio_suspend64\fR(
160 const struct \fBaiocb\fR *, ...); const struct \fBaiocb64\fR *, ...);
161 int \fBaio_waitn\fR(aiocb_t *[], int \fBaio_waitn64\fR(aiocb64_t *[],
163 int \fBaio_write\fR(struct \fBaiocb\fR *); int \fBaio_write64\fR(struct \fBaiocb64\fR *);
164 int \fBlio_listio\fR(..., int \fBlio_listio64\fR(...,
165 const struct \fBaiocb\fR *, ...); const struct \fBaiocb64\fR *, ...);
168 .SS "<\fBdirent.h\fR>"
173 int \fBalphasort\fR( int \fBalphasort64\fR(
174 const struct dirent **, const struct dirent64 **,
175 const struct dirent **) const struct dirent64 **)
176 struct \fBdirent *\fR\fBreaddir()\fR; struct \fBdirent64 *\fR\fBreaddir64()\fR;
177 struct \fBdirent *\fR\fBreaddir_r()\fR; struct \fBdirent64 *\fR\fBreaddir64_r()\fR;
178 int \fBscandir\fR(..., int \fBscandir64\fR(...,
179 struct dirent *(*[]), struct dirent64 *(*[]),
180 int (*)(const struct dirent *), int (*)(const struct dirent64 *),
181 int (*)(const struct dirent **, int (*)(const struct dirent64 **,
182 const struct dirent **)) const struct dirent64 **))
185 .SS "<\fBfcntl.h\fR>"
190 int \fBattropen()\fR; int \fBattropen64()\fR;
191 int \fBcreat()\fR; int \fBcreat64()\fR;
192 int \fBopen()\fR; int \fBopen64()\fR;
193 int \fBopenat()\fR; int \fBopenat64()\fR;
194 int \fBposix_fadvise()\fR int \fBposix_fadvise64()\fR
195 int \fBposix_fallocate()\fR int \fBposix_fallocate64()\fR
203 int \fBftw\fR(..., int \fBftw64\fR(...,
204 const struct \fBstat\fR *, ...); const struct \fBstat64\fR *, ...);
206 int \fBnftw\fR(.. int \fBnftw64\fR(...,
207 const struct \fBstat\fR *, ...); const struct \fBstat64\fR *, ...);
211 .SS "<\fBlibgen.h\fR>"
215 char *\fBcopylist\fR(..., \fBoff_t\fR); char *\fBcopylist64\fR(..., \fBoff64_t\fR);
218 .SS "<\fBstdio.h\fR>"
223 int \fBfgetpos()\fR; int \fBfgetpos64()\fR;
224 FILE *\fBfopen()\fR; FILE *\fBfopen64()\fR;
225 FILE *\fBfreopen()\fR; FILE *\fBfreopen64()\fR;
226 int \fBfseeko\fR(..., \fBoff_t\fR, ...); int \fBfseeko64\fR(..., \fBoff64_t\fR, ...);
227 int \fBfsetpos\fR(..., int \fBfsetpos64\fR(...,
228 const \fBfpos_t\fR *); const \fBfpos64_t\fR *);
229 off_t \fBftello()\fR; off64_t \fBftello64()\fR();
230 FILE *\fBtmpfile()\fR; FILE *\fBtmpfile64()\fR;
233 .SS "<\fBstdlib.h\fR>"
237 int \fBmkstemp()\fR; int \fBmkstemp64()\fR;
240 .SS "<\fBsys/async.h\fR>"
245 int \fBaioread\fR(..., \fBoff_t\fR, ...); int \fBaioread64\fR(..., \fBoff64_t\fR, ...);
246 int \fBaiowrite\fR(..., \fBoff_t\fR, ...); int \fBaiowrite64\fR(..., \fBoff64_t\fR, ...);
249 .SS "<\fBsys/dirent.h\fR>"
254 int \fBgetdents\fR(..., \fBdirent\fR); int \fBgetdents64\fR(..., \fBdirent64\fR);
258 .SS "<\fBsys/mman.h\fR>"
262 void \fBmmap\fR(..., \fBoff_t\fR); void \fBmmap64\fR(..., \fBoff64_t\fR);
265 .SS "<\fBsys/resource.h\fR>"
270 int \fBgetrlimit\fR(..., int \fBgetrlimit64\fR(...,
271 struct \fBrlimit\fR *); struct \fBrlimit64\fR *);
272 int \fBsetrlimit\fR(..., int \fBsetrlimit64\fR(...,
273 const struct \fBrlimit\fR *); const struct \fBrlimit64\fR *);
276 .SS "<\fBsys/sendfile.h\fR>"
281 ssize_t \fBsendfile\fR(..., ssize_t \fBsendfile64\fR(...,
282 \fBoff_t\fR *, ...); \fBoff64_t\fR *, ...);
283 ssize_t \fBsendfilev\fR(..., const ssize_t \fBsendfilev64\fR(..., const
284 struct \fBsendfilevec\fR *, ...); struct \fBsendfilevec64\fR *, ...);
288 .SS "<\fBsys/stat.h\fR>"
293 int \fBfstat\fR(..., struct \fBstat\fR *); int \fBfstat64\fR(..., struct \fBstat64\fR *);
294 int \fBfstatat\fR(..., int \fBfstatat64\fR(...,
295 struct \fBstat\fR *, int); struct \fBstat64\fR *, int);
296 int \fBlstat\fR(..., struct \fBstat\fR *); int \fBlstat64\fR(..., struct \fBstat64\fR *);
297 int \fBstat\fR(..., struct \fBstat\fR *); int \fBstat64\fR(..., struct \fBstat64\fR *);
300 .SS "<\fBsys/statvfs.h\fR>"
305 int \fBstatvfs\fR(..., int \fBstatvfs64\fR(...,
306 struct \fBstatvfs\fR *); struct \fBstatvfs64\fR *);
307 int \fBfstatvfs\fR(..., int \fBfstatvfs64\fR(...,
308 struct \fBstatvfs\fR *); struct \fBstatvfs64\fR *);
311 .SS "<\fBucbinclude/stdio.h\fR>"
316 FILE *\fBfopen()\fR FILE *\fBfopen64()\fR
317 FILE *\fBfreopen()\fR FILE *\fBfreopen64()\fR
320 .SS "<\fBucbinclude/sys/dir.h\fR>"
325 int \fBalphasort\fR( int \fBalphasort64\fR(
326 struct \fBdirect\fR **, struct \fBdirect64\fR **,
327 struct \fBdirect\fR **); struct \fBdirect64\fR **);
328 struct \fBdirect *\fR\fBreaddir()\fR; struct \fBdirect64 *\fR\fBreaddir64()\fR;
329 int \fBscandir\fR(..., int \fBscandir64\fR(...,
330 struct \fBdirect\fR *(*[]);, ...); struct \fBdirect64\fR *(*[]);, ...);
334 .SS "<\fBunistd.h\fR>"
339 int \fBlockf\fR(..., \fBoff_t\fR); int \fBlockf64\fR(..., \fBoff64_t\fR);
340 \fBoff_t lseek\fR(..., \fBoff_t\fR, ...); \fBoff64_t lseek64\fR(..., \fBoff64_t\fR, ...);
341 int \fBftruncate\fR(..., \fBoff_t\fR); int \fBftruncate64\fR..., \fBoff64_t\fR);
342 ssize_t \fBpread\fR(..., \fBoff_t\fR); ssize_t \fBpread64\fR..., \fBoff64_t\fR);
343 ssize_t \fBpwrite\fR(..., \fBoff_t\fR); ssize_t \fBpwrite64\fR(..., \fBoff64_t\fR);
344 ssize_t \fBpreadv\fR(..., \fBoff_t\fR); ssize_t \fBpreadv64\fR..., \fBoff64_t\fR);
345 ssize_t \fBpwritev\fR(..., \fBoff_t\fR); ssize_t \fBpwritev64\fR(..., \fBoff64_t\fR);
346 int \fBtruncate\fR(..., \fBoff_t\fR); int \fBtruncate64\fR(..., \fBoff64_t\fR);
351 \fBlfcompile\fR(5), \fBlfcompile64\fR(5)