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)