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 "Jan 14, 2015" 8 .SH NAME 9 lf64 \- transitional interfaces for 64-bit file offsets 10 .SH DESCRIPTION 11 .LP 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 17 64-bit entities. 18 .SS "Data Types" 19 .LP 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. 27 .SS "<\fBaio.h\fR>" 28 29 .TS 30 l l 31 l l . 32 struct \fBaiocb\fR struct \fBaiocb64\fR 33 \fBoff_t\fR aio_offset; \fBoff64_t\fR aio_offset; 34 .TE 35 36 .SS "<\fBsys/dirent.h\fR>" 37 38 .TS 39 l l 40 l l . 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; 44 .TE 45 46 .SS "<\fBsys/fcntl.h\fR>" 47 48 .TS 49 l l 50 l l . 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 59 \fBO_LARGEFILE\fR 60 .TE 61 62 .SS "<\fBsys/stdio.h\fR>" 63 64 .TS 65 l l . 66 \fBfpos_t\fR \fBfpos64_t\fR 67 .TE 68 69 .SS "<\fBsys/resource.h\fR>" 70 71 .TS 72 l l 73 l l . 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 81 .TE 82 83 .SS "<\fBsys/stat.h\fR>" 84 85 .TS 86 l l 87 l l . 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; 92 .TE 93 94 .SS "<\fBsys/statvfs.h\fR>" 95 96 .TS 97 l l 98 l l . 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; 106 .TE 107 108 .SS "<\fBsys/types.h\fR>" 109 110 .TS 111 l l 112 l l . 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; 118 .TE 119 120 .SS "<\fBunistd.h\fR>" 121 122 .TS 123 l l 124 l l . 125 \fB_LFS64_LARGEFILE\fR 126 \fB_LFS64_STDIO\fR 127 .TE 128 129 .SS "<\fBsys/unistd.h\fR>" 130 131 .TS 132 l l 133 l l . 134 \fB_CS_LFS64_CFLAGS\fR 135 \fB_CS_LFS64_LDFLAGS\fR 136 \fB_CS_LFS64_LIBS\fR 137 \fB_CS_LFS64_LINTFLAGS\fR 138 .TE 139 140 .SS "System Interfaces" 141 .LP 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 145 font. 146 .SS "<\fBaio.h\fR>" 147 148 .TS 149 l l 150 l l . 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 *[], 162 ...); ...); 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 *, ...); 166 .TE 167 168 .SS "<\fBdirent.h\fR>" 169 170 .TS 171 l l 172 l l . 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 **)) 183 .TE 184 185 .SS "<\fBfcntl.h\fR>" 186 187 .TS 188 l l 189 l l . 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 196 .TE 197 198 .SS "<\fBftw.h\fR>" 199 200 .TS 201 l l 202 l l . 203 int \fBftw\fR(..., int \fBftw64\fR(..., 204 const struct \fBstat\fR *, ...); const struct \fBstat64\fR *, ...); 205 206 int \fBnftw\fR(.. int \fBnftw64\fR(..., 207 const struct \fBstat\fR *, ...); const struct \fBstat64\fR *, ...); 208 209 .TE 210 211 .SS "<\fBlibgen.h\fR>" 212 213 .TS 214 l l . 215 char *\fBcopylist\fR(..., \fBoff_t\fR); char *\fBcopylist64\fR(..., \fBoff64_t\fR); 216 .TE 217 218 .SS "<\fBstdio.h\fR>" 219 220 .TS 221 l l 222 l l . 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; 231 .TE 232 233 .SS "<\fBstdlib.h\fR>" 234 235 .TS 236 l l . 237 int \fBmkstemp()\fR; int \fBmkstemp64()\fR; 238 .TE 239 240 .SS "<\fBsys/async.h\fR>" 241 242 .TS 243 l l 244 l l . 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, ...); 247 .TE 248 249 .SS "<\fBsys/dirent.h\fR>" 250 251 .TS 252 l l 253 l l . 254 int \fBgetdents\fR(..., \fBdirent\fR); int \fBgetdents64\fR(..., \fBdirent64\fR); 255 256 .TE 257 258 .SS "<\fBsys/mman.h\fR>" 259 260 .TS 261 l l . 262 void \fBmmap\fR(..., \fBoff_t\fR); void \fBmmap64\fR(..., \fBoff64_t\fR); 263 .TE 264 265 .SS "<\fBsys/resource.h\fR>" 266 267 .TS 268 l l 269 l l . 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 *); 274 .TE 275 276 .SS "<\fBsys/sendfile.h\fR>" 277 278 .TS 279 l l 280 l l . 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 *, ...); 285 286 .TE 287 288 .SS "<\fBsys/stat.h\fR>" 289 290 .TS 291 l l 292 l l . 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 *); 298 .TE 299 300 .SS "<\fBsys/statvfs.h\fR>" 301 302 .TS 303 l l 304 l l . 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 *); 309 .TE 310 311 .SS "<\fBucbinclude/stdio.h\fR>" 312 313 .TS 314 l l 315 l l . 316 FILE *\fBfopen()\fR FILE *\fBfopen64()\fR 317 FILE *\fBfreopen()\fR FILE *\fBfreopen64()\fR 318 .TE 319 320 .SS "<\fBucbinclude/sys/dir.h\fR>" 321 322 .TS 323 l l 324 l l . 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 *(*[]);, ...); 331 332 .TE 333 334 .SS "<\fBunistd.h\fR>" 335 336 .TS 337 l l 338 l l . 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); 347 .TE 348 349 .SH SEE ALSO 350 .LP 351 \fBlfcompile\fR(5), \fBlfcompile64\fR(5)