1 '\" te 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 "May 17, 2020" 8 .SH NAME 9 lf64 \- transitional interfaces for 64-bit file offsets 10 .SH DESCRIPTION 11 The data types, interfaces, and macros described on this page provide explicit 12 access to 64-bit file offsets. They are accessible through the transitional 13 compilation environment described on the \fBlfcompile64\fR(5) manual page. The 14 function prototype and semantics of a transitional interface are equivalent to 15 those of the standard version of the call, except that relevant data types are 16 64-bit entities. 17 .SS "Data Types" 18 The following tables list the standard data or struct types in the left-hand 19 column and their corresponding explicit 64-bit file offset types in the 20 right-hand column, grouped by header. The absence of an entry in the left-hand 21 column indicates that there is no existing explicit 32-bit type that 22 corresponds to the 64-bit type listed in the right\(emhand column. Note that 23 in a 64-bit application, the standard definition is equivalent to the 64-bit 24 file offset definition. 25 .SS "<\fBaio.h\fR>" 26 27 .TS 28 l l 29 l l . 30 struct \fBaiocb\fR struct \fBaiocb64\fR 31 \fBoff_t\fR aio_offset; \fBoff64_t\fR aio_offset; 32 .TE 33 34 .SS "<\fBsys/dirent.h\fR>" 35 36 .TS 37 l l 38 l l . 39 struct \fBdirent\fR struct \fBdirent64\fR 40 \fBino_t\fR d_ino; \fBino64_t\fR d_ino; 41 \fBoff_t\fR d_off; \fBoff64_t\fR d_off; 42 .TE 43 44 .SS "<\fBsys/fcntl.h\fR>" 45 46 .TS 47 l l 48 l l . 49 struct \fBflock\fR struct \fBflock64\fR 50 \fBoff_t\fR l_start; \fBoff64_t\fR l_start; 51 \fBoff_t\fR l_len; \fBoff64_t\fR l_len; 52 \fBF_SETLK\fR \fBF_SETLK64\fR 53 \fBF_SETLKW\fR \fBF_SETLKW64\fR 54 \fBF_GETLK\fR \fBF_GETLK64\fR 55 \fBF_FREESP\fR \fBF_FREESP64\fR 56 \fBF_ALLOCSP\fR \fBF_ALLOCSP64\fR 57 \fBO_LARGEFILE\fR 58 .TE 59 60 .SS "<\fBsys/stdio.h\fR>" 61 62 .TS 63 l l . 64 \fBfpos_t\fR \fBfpos64_t\fR 65 .TE 66 67 .SS "<\fBsys/resource.h\fR>" 68 69 .TS 70 l l 71 l l . 72 \fBrlim_t\fR \fBrlim64_t\fR 73 struct \fBrlimit\fR struct \fBrlimit64\fR 74 \fBrlim_t\fR rlim_cur; \fBrlim64_t\fR rlim_cur; 75 \fBrlim_t\fR rlim_max; \fBrlim64_t\fR rlim_max; 76 \fBRLIM_INFINITY\fR \fBRLIM64_INFINITY\fR 77 \fBRLIM_SAVED_MAX\fR \fBRLIM64_SAVED_MAX\fR 78 \fBRLIM_SAVED_CUR\fR \fBRLIM64_SAVED_CUR\fR 79 .TE 80 81 .SS "<\fBsys/stat.h\fR>" 82 83 .TS 84 l l 85 l l . 86 struct \fBstat\fR struct \fBstat64\fR 87 \fBino_t\fR st_ino; \fBino64_t\fR st_ino; 88 \fBoff_t\fR st_size; \fBoff64_t\fR st_size; 89 \fBblkcnt_t\fR st_blocks; \fBblkcnt64_t\fR st_blocks; 90 .TE 91 92 .SS "<\fBsys/statvfs.h\fR>" 93 94 .TS 95 l l 96 l l . 97 struct \fBstatvfs\fR struct \fBstatvfs64\fR 98 \fBfsblkcnt_t\fR f_blocks; \fBfsblkcnt64_t\fR f_blocks; 99 \fBfsblkcnt_t\fR f_bfree; \fBfsblkcnt64_t\fR f_bfree; 100 \fBfsblkcnt_t\fR f_bavail; \fBfsblkcnt64_t\fR f_bavail; 101 \fBfsfilcnt_t\fR f_files; \fBfsfilcnt64_t\fR f_files; 102 \fBfsfilcnt_t\fR f_ffree; \fBfsfilcnt64_t\fR f_ffree; 103 \fBfsfilcnt_t\fR f_favail; \fBfsfilcnt64_t\fR f_favail; 104 .TE 105 106 .SS "<\fBsys/types.h\fR>" 107 108 .TS 109 l l 110 l l . 111 \fBoff_t\fR; \fBoff64_t\fR; 112 \fBino_t\fR; \fBino64_t\fR; 113 \fBblkcnt_t\fR; \fBblkcnt64_t\fR; 114 \fBfsblkcnt_t\fR; \fBfsblkcnt64_t\fR; 115 \fBfsfilcnt_t\fR; \fBfsfilcnt64_t\fR; 116 .TE 117 118 .SS "<\fBunistd.h\fR>" 119 120 .TS 121 l l 122 l l . 123 \fB_LFS64_LARGEFILE\fR 124 \fB_LFS64_STDIO\fR 125 .TE 126 127 .SS "<\fBsys/unistd.h\fR>" 128 129 .TS 130 l l 131 l l . 132 \fB_CS_LFS64_CFLAGS\fR 133 \fB_CS_LFS64_LDFLAGS\fR 134 \fB_CS_LFS64_LIBS\fR 135 \fB_CS_LFS64_LINTFLAGS\fR 136 .TE 137 138 .SS "System Interfaces" 139 The following tables display the standard API and the corresponding 140 transitional interfaces for 64-bit file offsets. The interfaces are grouped by 141 header. The interface name and the affected data types are displayed in courier 142 font. 143 .SS "<\fBaio.h\fR>" 144 145 .TS 146 l l 147 l l . 148 int \fBaio_cancel\fR(..., int \fBaio_cancel64\fR(..., 149 struct \fBaiocb\fR *); struct \fBaiocb64\fR *); 150 int \fBaio_error\fR( int \fBaio_error64\fR( 151 const struct \fBaiocb\fR *); const struct \fBaiocb64\fR *); 152 int \fBaio_fsync\fR(..., int \fBaio_fsync64\fR(..., 153 struct \fBaiocb\fR *); struct \fBaiocb64\fR *); 154 int \fBaio_read\fR(struct \fBaiocb\fR *); int \fBaio_read64\fR(struct \fBaiocb64\fR *); 155 int \fBaio_return\fR(struct \fBaiocb\fR *); int \fBaio_return64\fR(struct \fBaiocb64\fR *); 156 int \fBaio_suspend\fR( int \fBaio_suspend64\fR( 157 const struct \fBaiocb\fR *, ...); const struct \fBaiocb64\fR *, ...); 158 int \fBaio_waitn\fR(aiocb_t *[], int \fBaio_waitn64\fR(aiocb64_t *[], 159 ...); ...); 160 int \fBaio_write\fR(struct \fBaiocb\fR *); int \fBaio_write64\fR(struct \fBaiocb64\fR *); 161 int \fBlio_listio\fR(..., int \fBlio_listio64\fR(..., 162 const struct \fBaiocb\fR *, ...); const struct \fBaiocb64\fR *, ...); 163 .TE 164 165 .SS "<\fBdirent.h\fR>" 166 167 .TS 168 l l 169 l l . 170 int \fBalphasort\fR( int \fBalphasort64\fR( 171 const struct dirent **, const struct dirent64 **, 172 const struct dirent **) const struct dirent64 **) 173 struct \fBdirent *\fR\fBreaddir()\fR; struct \fBdirent64 *\fR\fBreaddir64()\fR; 174 struct \fBdirent *\fR\fBreaddir_r()\fR; struct \fBdirent64 *\fR\fBreaddir64_r()\fR; 175 int \fBscandir\fR(..., int \fBscandir64\fR(..., 176 struct dirent *(*[]), struct dirent64 *(*[]), 177 int (*)(const struct dirent *), int (*)(const struct dirent64 *), 178 int (*)(const struct dirent **, int (*)(const struct dirent64 **, 179 const struct dirent **)) const struct dirent64 **)) 180 .TE 181 182 .SS "<\fBfcntl.h\fR>" 183 184 .TS 185 l l 186 l l . 187 int \fBattropen()\fR; int \fBattropen64()\fR; 188 int \fBcreat()\fR; int \fBcreat64()\fR; 189 int \fBopen()\fR; int \fBopen64()\fR; 190 int \fBopenat()\fR; int \fBopenat64()\fR; 191 int \fBposix_fadvise()\fR int \fBposix_fadvise64()\fR 192 int \fBposix_fallocate()\fR int \fBposix_fallocate64()\fR 193 .TE 194 195 .SS "<\fBftw.h\fR>" 196 197 .TS 198 l l 199 l l . 200 int \fBftw\fR(..., int \fBftw64\fR(..., 201 const struct \fBstat\fR *, ...); const struct \fBstat64\fR *, ...); 202 203 int \fBnftw\fR(.. int \fBnftw64\fR(..., 204 const struct \fBstat\fR *, ...); const struct \fBstat64\fR *, ...); 205 206 .TE 207 208 .SS "<\fBlibgen.h\fR>" 209 210 .TS 211 l l . 212 char *\fBcopylist\fR(..., \fBoff_t\fR); char *\fBcopylist64\fR(..., \fBoff64_t\fR); 213 .TE 214 215 .SS "<\fBstdio.h\fR>" 216 217 .TS 218 l l 219 l l . 220 int \fBfgetpos()\fR; int \fBfgetpos64()\fR; 221 FILE *\fBfopen()\fR; FILE *\fBfopen64()\fR; 222 FILE *\fBfreopen()\fR; FILE *\fBfreopen64()\fR; 223 int \fBfseeko\fR(..., \fBoff_t\fR, ...); int \fBfseeko64\fR(..., \fBoff64_t\fR, ...); 224 int \fBfsetpos\fR(..., int \fBfsetpos64\fR(..., 225 const \fBfpos_t\fR *); const \fBfpos64_t\fR *); 226 off_t \fBftello()\fR; off64_t \fBftello64()\fR(); 227 FILE *\fBtmpfile()\fR; FILE *\fBtmpfile64()\fR; 228 .TE 229 230 .SS "<\fBstdlib.h\fR>" 231 232 .TS 233 l l . 234 int \fBmkstemp()\fR; int \fBmkstemp64()\fR; 235 .TE 236 237 .SS "<\fBsys/async.h\fR>" 238 239 .TS 240 l l 241 l l . 242 int \fBaioread\fR(..., \fBoff_t\fR, ...); int \fBaioread64\fR(..., \fBoff64_t\fR, ...); 243 int \fBaiowrite\fR(..., \fBoff_t\fR, ...); int \fBaiowrite64\fR(..., \fBoff64_t\fR, ...); 244 .TE 245 246 .SS "<\fBsys/dirent.h\fR>" 247 248 .TS 249 l l 250 l l . 251 int \fBgetdents\fR(..., \fBdirent\fR); int \fBgetdents64\fR(..., \fBdirent64\fR); 252 253 .TE 254 255 .SS "<\fBsys/mman.h\fR>" 256 257 .TS 258 l l . 259 void \fBmmap\fR(..., \fBoff_t\fR); void \fBmmap64\fR(..., \fBoff64_t\fR); 260 .TE 261 262 .SS "<\fBsys/resource.h\fR>" 263 264 .TS 265 l l 266 l l . 267 int \fBgetrlimit\fR(..., int \fBgetrlimit64\fR(..., 268 struct \fBrlimit\fR *); struct \fBrlimit64\fR *); 269 int \fBsetrlimit\fR(..., int \fBsetrlimit64\fR(..., 270 const struct \fBrlimit\fR *); const struct \fBrlimit64\fR *); 271 .TE 272 273 .SS "<\fBsys/sendfile.h\fR>" 274 275 .TS 276 l l 277 l l . 278 ssize_t \fBsendfile\fR(..., ssize_t \fBsendfile64\fR(..., 279 \fBoff_t\fR *, ...); \fBoff64_t\fR *, ...); 280 ssize_t \fBsendfilev\fR(..., const ssize_t \fBsendfilev64\fR(..., const 281 struct \fBsendfilevec\fR *, ...); struct \fBsendfilevec64\fR *, ...); 282 283 .TE 284 285 .SS "<\fBsys/stat.h\fR>" 286 287 .TS 288 l l 289 l l . 290 int \fBfstat\fR(..., struct \fBstat\fR *); int \fBfstat64\fR(..., struct \fBstat64\fR *); 291 int \fBfstatat\fR(..., int \fBfstatat64\fR(..., 292 struct \fBstat\fR *, int); struct \fBstat64\fR *, int); 293 int \fBlstat\fR(..., struct \fBstat\fR *); int \fBlstat64\fR(..., struct \fBstat64\fR *); 294 int \fBstat\fR(..., struct \fBstat\fR *); int \fBstat64\fR(..., struct \fBstat64\fR *); 295 .TE 296 297 .SS "<\fBsys/statvfs.h\fR>" 298 299 .TS 300 l l 301 l l . 302 int \fBstatvfs\fR(..., int \fBstatvfs64\fR(..., 303 struct \fBstatvfs\fR *); struct \fBstatvfs64\fR *); 304 int \fBfstatvfs\fR(..., int \fBfstatvfs64\fR(..., 305 struct \fBstatvfs\fR *); struct \fBstatvfs64\fR *); 306 .TE 307 308 .SS "<\fBucbinclude/stdio.h\fR>" 309 310 .TS 311 l l 312 l l . 313 FILE *\fBfopen()\fR FILE *\fBfopen64()\fR 314 FILE *\fBfreopen()\fR FILE *\fBfreopen64()\fR 315 .TE 316 317 .SS "<\fBucbinclude/sys/dir.h\fR>" 318 319 .TS 320 l l 321 l l . 322 int \fBalphasort\fR( int \fBalphasort64\fR( 323 struct \fBdirect\fR **, struct \fBdirect64\fR **, 324 struct \fBdirect\fR **); struct \fBdirect64\fR **); 325 struct \fBdirect *\fR\fBreaddir()\fR; struct \fBdirect64 *\fR\fBreaddir64()\fR; 326 int \fBscandir\fR(..., int \fBscandir64\fR(..., 327 struct \fBdirect\fR *(*[]);, ...); struct \fBdirect64\fR *(*[]);, ...); 328 329 .TE 330 331 .SS "<\fBunistd.h\fR>" 332 333 .TS 334 l l 335 l l . 336 int \fBlockf\fR(..., \fBoff_t\fR); int \fBlockf64\fR(..., \fBoff64_t\fR); 337 \fBoff_t lseek\fR(..., \fBoff_t\fR, ...); \fBoff64_t lseek64\fR(..., \fBoff64_t\fR, ...); 338 int \fBftruncate\fR(..., \fBoff_t\fR); int \fBftruncate64\fR..., \fBoff64_t\fR); 339 ssize_t \fBpread\fR(..., \fBoff_t\fR); ssize_t \fBpread64\fR..., \fBoff64_t\fR); 340 ssize_t \fBpwrite\fR(..., \fBoff_t\fR); ssize_t \fBpwrite64\fR(..., \fBoff64_t\fR); 341 ssize_t \fBpreadv\fR(..., \fBoff_t\fR); ssize_t \fBpreadv64\fR..., \fBoff64_t\fR); 342 ssize_t \fBpwritev\fR(..., \fBoff_t\fR); ssize_t \fBpwritev64\fR(..., \fBoff64_t\fR); 343 int \fBtruncate\fR(..., \fBoff_t\fR); int \fBtruncate64\fR(..., \fBoff64_t\fR); 344 .TE 345 346 .SH SEE ALSO 347 \fBlfcompile\fR(5), \fBlfcompile64\fR(5)