XRootD
Loading...
Searching...
No Matches
XrdPosixLinkage.hh
Go to the documentation of this file.
1#ifndef _XRDPOSIXLINKAGE_H_
2#define _XRDPOSIXLINKAGE_H_
3/******************************************************************************/
4/* */
5/* X r d P o s i x L i n k a g e . h h */
6/* */
7/* (c) 2005 by the Board of Trustees of the Leland Stanford, Jr., University */
8/* All Rights Reserved */
9/* Produced by Andrew Hanushevsky for Stanford University under contract */
10/* DE-AC02-76-SFO0515 with the Department of Energy */
11/* */
12/* This file is part of the XRootD software suite. */
13/* */
14/* XRootD is free software: you can redistribute it and/or modify it under */
15/* the terms of the GNU Lesser General Public License as published by the */
16/* Free Software Foundation, either version 3 of the License, or (at your */
17/* option) any later version. */
18/* */
19/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
20/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
21/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
22/* License for more details. */
23/* */
24/* You should have received a copy of the GNU Lesser General Public License */
25/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
26/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
27/* */
28/* The copyright holder's institutional names and contributor's names may not */
29/* be used to endorse or promote products derived from this software without */
30/* specific prior written permission of the institution or contributor. */
31/******************************************************************************/
32
33#include <sys/types.h>
34#include <sys/stat.h>
35#include <sys/statvfs.h>
36#include <dirent.h>
37#include <cerrno>
38#include <fcntl.h>
39#include <cstdio>
40#include <unistd.h>
41
45#include "XrdSys/XrdSysStatx.hh"
46
47/******************************************************************************/
48/* Posix Symbols vs Return Valus and Arguments */
49/******************************************************************************/
50
51//#ifdef __linux__
52//#define UNIX_PFX "__"
53//#else
54#define UNIX_PFX
55//#endif
56
57#define Symb_Access UNIX_PFX "access"
58#define Retv_Access int
59#define Args_Access const char *path, int amode
60
61#define Symb_Acl UNIX_PFX "acl"
62#define Retv_Acl int
63#define Args_Acl const char *, int, int, void *
64
65#define Symb_Chdir UNIX_PFX "chdir"
66#define Retv_Chdir int
67#define Args_Chdir const char *path
68
69#define Symb_Close UNIX_PFX "close"
70#define Retv_Close int
71#define Args_Close int
72
73#define Symb_Closedir UNIX_PFX "closedir"
74#define Retv_Closedir int
75#define Args_Closedir DIR *
76
77#define Symb_Fclose UNIX_PFX "fclose"
78#define Retv_Fclose int
79#define Args_Fclose FILE *
80
81#define Symb_Fcntl UNIX_PFX "fcntl"
82#define Retv_Fcntl int
83#define Args_Fcntl int, int, ...
84
85#ifdef __APPLE__
86#define Symb_Fcntl64 UNIX_PFX "fcntl"
87#define Retv_Fcntl64 int
88#define Args_Fcntl64 int, int, ...
89#else
90#define Symb_Fcntl64 UNIX_PFX "fcntl64"
91#define Retv_Fcntl64 int
92#define Args_Fcntl64 int, int, ...
93#endif
94
95#define Symb_Fdatasync UNIX_PFX "fdatasync"
96#define Retv_Fdatasync int
97#define Args_Fdatasync int
98
99#define Symb_Fflush UNIX_PFX "fflush"
100#define Retv_Fflush int
101#define Args_Fflush FILE *
102
103#define Symb_Fopen UNIX_PFX "fopen"
104#define Retv_Fopen FILE *
105#define Args_Fopen const char *, const char *
106
107#ifdef __APPLE__
108#define Symb_Fopen64 UNIX_PFX "fopen"
109#define Retv_Fopen64 FILE *
110#define Args_Fopen64 const char *, const char *
111#else
112#define Symb_Fopen64 UNIX_PFX "fopen64"
113#define Retv_Fopen64 FILE *
114#define Args_Fopen64 const char *, const char *
115#endif
116
117#define Symb_Fread UNIX_PFX "fread"
118#define Retv_Fread size_t
119#define Args_Fread void *, size_t, size_t, FILE *
120
121#define Symb_Fseek UNIX_PFX "fseek"
122#define Retv_Fseek int
123#define Args_Fseek FILE *, long, int
124
125#define Symb_Fseeko UNIX_PFX "fseeko"
126#define Retv_Fseeko int
127#define Args_Fseeko FILE *, off_t, int
128
129#ifdef __APPLE__
130#define Symb_Fseeko64 UNIX_PFX "fseeko"
131#define Retv_Fseeko64 int
132#define Args_Fseeko64 FILE *, off64_t, int
133#else
134#define Symb_Fseeko64 UNIX_PFX "fseeko64"
135#define Retv_Fseeko64 int
136#define Args_Fseeko64 FILE *, off64_t, int
137#endif
138
139#if defined(__linux__) and defined(_STAT_VER)
140#define Symb_Fstat UNIX_PFX "__fxstat"
141#define Retv_Fstat int
142#define Args_Fstat int, int, struct stat *
143#else
144#define Symb_Fstat UNIX_PFX "fstat"
145#define Retv_Fstat int
146#define Args_Fstat int, struct stat *
147#endif
148
149#if defined(__linux__) and defined(_STAT_VER)
150#define Symb_Fstat64 UNIX_PFX "__fxstat64"
151#define Retv_Fstat64 int
152#define Args_Fstat64 int, int, struct stat64 *
153#else
154#ifdef __APPLE__
155#define Symb_Fstat64 UNIX_PFX "fstat"
156#define Retv_Fstat64 int
157#define Args_Fstat64 int, struct stat64 *
158#else
159#define Symb_Fstat64 UNIX_PFX "fstat64"
160#define Retv_Fstat64 int
161#define Args_Fstat64 int, struct stat64 *
162#endif
163#endif
164
165#define Symb_Fsync UNIX_PFX "fsync"
166#define Retv_Fsync int
167#define Args_Fsync int
168
169#define Symb_Ftell UNIX_PFX "ftell"
170#define Retv_Ftell long
171#define Args_Ftell FILE *
172
173#define Symb_Ftello UNIX_PFX "ftello"
174#define Retv_Ftello off_t
175#define Args_Ftello FILE *
176
177#ifdef __APPLE__
178#define Symb_Ftello64 UNIX_PFX "ftello"
179#define Retv_Ftello64 off64_t
180#define Args_Ftello64 FILE *
181#else
182#define Symb_Ftello64 UNIX_PFX "ftello64"
183#define Retv_Ftello64 off64_t
184#define Args_Ftello64 FILE *
185#endif
186
187#define Symb_Ftruncate UNIX_PFX "ftruncate"
188#define Retv_Ftruncate int
189#define Args_Ftruncate int, off_t
190
191#ifdef __APPLE__
192#define Symb_Ftruncate64 UNIX_PFX "ftruncate"
193#define Retv_Ftruncate64 int
194#define Args_Ftruncate64 int, off64_t
195#else
196#define Symb_Ftruncate64 UNIX_PFX "ftruncate64"
197#define Retv_Ftruncate64 int
198#define Args_Ftruncate64 int, off64_t
199#endif
200
201#define Symb_Fwrite UNIX_PFX "fwrite"
202#define Retv_Fwrite int
203#define Args_Fwrite const void *, size_t, size_t, FILE *
204
205#define Symb_Fgetxattr UNIX_PFX "fgetxattr"
206#define Retv_Fgetxattr ssize_t
207#define Args_Fgetxattr int, const char *, const void *, size_t
208
209#define Symb_Getxattr UNIX_PFX "getxattr"
210#define Retv_Getxattr ssize_t
211#define Args_Getxattr const char *, const char *, const void *, size_t
212
213#define Symb_Lgetxattr UNIX_PFX "lgetxattr"
214#define Retv_Lgetxattr ssize_t
215#define Args_Lgetxattr const char *, const char *, const void *, size_t
216
217#define Symb_Lseek UNIX_PFX "lseek"
218#define Retv_Lseek off_t
219#define Args_Lseek int, off_t, int
220
221#ifdef __APPLE__
222#define Symb_Lseek64 UNIX_PFX "lseek"
223#define Retv_Lseek64 off64_t
224#define Args_Lseek64 int, off64_t, int
225#else
226#define Symb_Lseek64 UNIX_PFX "lseek64"
227#define Retv_Lseek64 off64_t
228#define Args_Lseek64 int, off64_t, int
229#endif
230
231#if defined(__linux__) and defined(_STAT_VER)
232#define Symb_Lstat UNIX_PFX "__lxstat"
233#define Retv_Lstat int
234#define Args_Lstat int, const char *, struct stat *
235#else
236#define Symb_Lstat UNIX_PFX "lstat"
237#define Retv_Lstat int
238#define Args_Lstat const char *, struct stat *
239#endif
240
241#if defined(__linux__) and defined(_STAT_VER)
242#define Symb_Lstat64 UNIX_PFX "__lxstat64"
243#define Retv_Lstat64 int
244#define Args_Lstat64 int, const char *, struct stat64 *
245#else
246#ifdef __APPLE__
247#define Symb_Lstat64 UNIX_PFX "lstat"
248#define Retv_Lstat64 int
249#define Args_Lstat64 const char *, struct stat64 *
250#else
251#define Symb_Lstat64 UNIX_PFX "lstat64"
252#define Retv_Lstat64 int
253#define Args_Lstat64 const char *, struct stat64 *
254#endif
255#endif
256
257#define Symb_Mkdir UNIX_PFX "mkdir"
258#define Retv_Mkdir int
259#define Args_Mkdir const char *, mode_t
260
261#define Symb_Open UNIX_PFX "open"
262#define Retv_Open int
263#define Args_Open const char *, int, ...
264
265#ifdef __APPLE__
266#define Symb_Open64 UNIX_PFX "open"
267#define Retv_Open64 int
268#define Args_Open64 const char *, int, ...
269#else
270#define Symb_Open64 UNIX_PFX "open64"
271#define Retv_Open64 int
272#define Args_Open64 const char *, int, ...
273#endif
274
275#define Symb_Opendir UNIX_PFX "opendir"
276#define Retv_Opendir DIR *
277#define Args_Opendir const char *
278
279#define Symb_Pathconf UNIX_PFX "pathconf"
280#define Retv_Pathconf long
281#define Args_Pathconf const char *, int
282
283#define Symb_Pread UNIX_PFX "pread"
284#define Retv_Pread ssize_t
285#define Args_Pread int, void *, size_t, off_t
286
287#ifdef __APPLE__
288#define Symb_Pread64 UNIX_PFX "pread"
289#define Retv_Pread64 ssize_t
290#define Args_Pread64 int, void *, size_t, off64_t
291#else
292#define Symb_Pread64 UNIX_PFX "pread64"
293#define Retv_Pread64 ssize_t
294#define Args_Pread64 int, void *, size_t, off64_t
295#endif
296
297#define Symb_Pwrite UNIX_PFX "pwrite"
298#define Retv_Pwrite ssize_t
299#define Args_Pwrite int, const void *, size_t, off_t
300
301#ifdef __APPLE__
302#define Symb_Pwrite64 UNIX_PFX "pwrite"
303#define Retv_Pwrite64 ssize_t
304#define Args_Pwrite64 int, const void *, size_t, off64_t
305#else
306#define Symb_Pwrite64 UNIX_PFX "pwrite64"
307#define Retv_Pwrite64 ssize_t
308#define Args_Pwrite64 int, const void *, size_t, off64_t
309#endif
310
311#define Symb_Read UNIX_PFX "read"
312#define Retv_Read ssize_t
313#define Args_Read int, void *, size_t
314
315#define Symb_Readv UNIX_PFX "readv"
316#define Retv_Readv ssize_t
317#define Args_Readv int, const struct iovec *, int
318
319#define Symb_Readdir UNIX_PFX "readdir"
320#define Retv_Readdir struct dirent *
321#define Args_Readdir DIR *
322
323#ifdef __APPLE__
324#define Symb_Readdir64 UNIX_PFX "readdir"
325#define Retv_Readdir64 struct dirent *
326#define Args_Readdir64 DIR *
327#else
328#define Symb_Readdir64 UNIX_PFX "readdir64"
329#define Retv_Readdir64 struct dirent64 *
330#define Args_Readdir64 DIR *
331#endif
332
333#define Symb_Readdir_r UNIX_PFX "readdir_r"
334#define Retv_Readdir_r int
335#define Args_Readdir_r DIR *, struct dirent *, struct dirent **
336
337#ifdef __APPLE__
338#define Symb_Readdir64_r UNIX_PFX "readdir_r"
339#define Retv_Readdir64_r int
340#define Args_Readdir64_r DIR *, struct dirent64 *, struct dirent64 **
341#else
342#define Symb_Readdir64_r UNIX_PFX "readdir64_r"
343#define Retv_Readdir64_r int
344#define Args_Readdir64_r DIR *, struct dirent64 *, struct dirent64 **
345#endif
346
347#define Symb_Rename UNIX_PFX "rename"
348#define Retv_Rename int
349#define Args_Rename const char *, const char *
350
351#define Symb_Rewinddir UNIX_PFX "rewinddir"
352#define Retv_Rewinddir void
353#define Args_Rewinddir DIR *
354
355#define Symb_Rmdir UNIX_PFX "rmdir"
356#define Retv_Rmdir int
357#define Args_Rmdir const char *
358
359#define Symb_Seekdir UNIX_PFX "seekdir"
360#define Retv_Seekdir void
361#define Args_Seekdir DIR *, long
362
363#ifdef __linux__
364#define Symb_Stat UNIX_PFX "__xstat"
365#define Retv_Stat int
366#define Args_Stat int, const char *, struct stat *
367#else
368#define Symb_Stat UNIX_PFX "stat"
369#define Retv_Stat int
370#define Args_Stat const char *, struct stat *
371#endif
372
373#if defined(__linux__) and defined(_STAT_VER)
374#define Symb_Stat64 UNIX_PFX "__xstat64"
375#define Retv_Stat64 int
376#define Args_Stat64 int, const char *, struct stat64 *
377#else
378#ifdef __APPLE__
379#define Symb_Stat64 UNIX_PFX "stat"
380#define Retv_Stat64 int
381#define Args_Stat64 const char *, struct stat64 *
382#else
383#define Symb_Stat64 UNIX_PFX "stat64"
384#define Retv_Stat64 int
385#define Args_Stat64 const char *, struct stat64 *
386#endif
387#endif
388
389#define Symb_Statfs UNIX_PFX "statfs"
390#define Retv_Statfs int
391#define Args_Statfs const char *, struct statfs *
392
393#ifdef __APPLE__
394#define Symb_Statfs64 UNIX_PFX "statfs"
395#define Retv_Statfs64 int
396#define Args_Statfs64 const char *, struct statfs64 *
397#else
398#define Symb_Statfs64 UNIX_PFX "statfs64"
399#define Retv_Statfs64 int
400#define Args_Statfs64 const char *, struct statfs64 *
401#endif
402
403#define Symb_Statvfs UNIX_PFX "statvfs"
404#define Retv_Statvfs int
405#define Args_Statvfs const char *, struct statvfs *
406
407#ifdef __APPLE__
408#define Symb_Statvfs64 UNIX_PFX "statvfs"
409#define Retv_Statvfs64 int
410#define Args_Statvfs64 const char *, struct statvfs64 *
411#else
412#define Symb_Statvfs64 UNIX_PFX "statvfs64"
413#define Retv_Statvfs64 int
414#define Args_Statvfs64 const char *, struct statvfs64 *
415#endif
416
417#define Symb_Statx UNIX_PFX "statx"
418#define Retv_Statx int
419#define Args_Statx int, const char *, int, unsigned int, XrdSysStatx *
420
421#define Symb_Telldir UNIX_PFX "telldir"
422#define Retv_Telldir long
423#define Args_Telldir DIR *
424
425#define Symb_Truncate UNIX_PFX "truncate"
426#define Retv_Truncate int
427#define Args_Truncate const char *, off_t
428
429#ifdef __APPLE__
430#define Symb_Truncate64 UNIX_PFX "truncate"
431#define Retv_Truncate64 int
432#define Args_Truncate64 const char *, off64_t
433#else
434#define Symb_Truncate64 UNIX_PFX "truncate64"
435#define Retv_Truncate64 int
436#define Args_Truncate64 const char *, off64_t
437#endif
438
439#define Symb_Unlink UNIX_PFX "unlink"
440#define Retv_Unlink int
441#define Args_Unlink const char *
442
443#define Symb_Write UNIX_PFX "write"
444#define Retv_Write ssize_t
445#define Args_Write int, const void *, size_t
446
447#define Symb_Writev UNIX_PFX "writev"
448#define Retv_Writev ssize_t
449#define Args_Writev int, const struct iovec *, int
450
451/******************************************************************************/
452/* C a l l O u t V e c t o r D e f i n i t i o n */
453/******************************************************************************/
454
456{public:
457 int Init(int *X=0) {if (!Done) Done = Resolve(); return 0;}
458
523
524 int Load_Error(const char *epname, int retv=-1);
525
526 XrdPosixLinkage() : Done(0) {Init();}
528
529private:
530int Done;
531void Missing(const char *);
532int Resolve();
533};
534// Warning! This class is meant to be defined as a static object.
535#endif
#define Args_Fseeko64
#define Retv_Truncate
#define Args_Readdir64_r
#define Retv_Telldir
#define Args_Fseeko
#define Args_Pread
#define Retv_Pread64
#define Retv_Fwrite
#define Retv_Lstat
#define Args_Lgetxattr
#define Args_Fcntl64
#define Retv_Truncate64
#define Args_Lstat
#define Args_Fopen64
#define Retv_Fseek
#define Retv_Ftello64
#define Args_Seekdir
#define Retv_Fcntl
#define Args_Read
#define Args_Write
#define Args_Writev
#define Args_Readdir64
#define Args_Telldir
#define Retv_Close
#define Retv_Statvfs64
#define Args_Fcntl
#define Retv_Statfs
#define Retv_Fcntl64
#define Args_Truncate
#define Args_Acl
#define Args_Fopen
#define Retv_Unlink
#define Args_Fseek
#define Retv_Readdir64
#define Args_Closedir
#define Args_Stat64
#define Retv_Statvfs
#define Args_Ftello
#define Args_Fgetxattr
#define Retv_Ftello
#define Args_Access
#define Args_Statfs64
#define Retv_Stat
#define Retv_Getxattr
#define Retv_Write
#define Retv_Closedir
#define Args_Statfs
#define Retv_Fstat64
#define Args_Fread
#define Args_Fsync
#define Args_Stat
#define Retv_Access
#define Retv_Lseek64
#define Retv_Fsync
#define Args_Open
#define Retv_Ftruncate
#define Args_Ftruncate
#define Retv_Fstat
#define Retv_Chdir
#define Retv_Statx
#define Retv_Fclose
#define Retv_Lstat64
#define Args_Fstat
#define Retv_Fseeko64
#define Args_Fflush
#define Args_Lstat64
#define Retv_Pread
#define Args_Close
#define Retv_Opendir
#define Retv_Lgetxattr
#define Args_Pwrite64
#define Args_Chdir
#define Args_Pathconf
#define Retv_Fopen64
#define Retv_Readdir64_r
#define Args_Readdir_r
#define Args_Fstat64
#define Retv_Ftell
#define Args_Truncate64
#define Args_Statx
#define Retv_Acl
#define Args_Ftruncate64
#define Retv_Pwrite
#define Args_Fdatasync
#define Retv_Pwrite64
#define Args_Fclose
#define Args_Ftell
#define Args_Rmdir
#define Retv_Mkdir
#define Retv_Seekdir
#define Retv_Rewinddir
#define Args_Readdir
#define Args_Rewinddir
#define Args_Getxattr
#define Retv_Fdatasync
#define Retv_Fflush
#define Retv_Readdir
#define Retv_Fread
#define Retv_Open64
#define Retv_Stat64
#define Retv_Ftruncate64
#define Args_Statvfs
#define Retv_Writev
#define Args_Rename
#define Retv_Rename
#define Retv_Fgetxattr
#define Args_Mkdir
#define Args_Pread64
#define Retv_Fseeko
#define Args_Open64
#define Args_Statvfs64
#define Retv_Statfs64
#define Args_Opendir
#define Retv_Pathconf
#define Retv_Read
#define Retv_Readv
#define Args_Readv
#define Args_Pwrite
#define Args_Ftello64
#define Retv_Readdir_r
#define Retv_Fopen
#define Retv_Lseek
#define Retv_Open
#define Args_Unlink
#define Retv_Rmdir
#define Args_Fwrite
#define Args_Lseek64
#define Args_Lseek
Retv_Opendir(* Opendir)(Args_Opendir)
Retv_Mkdir(* Mkdir)(Args_Mkdir)
Retv_Fcntl(* Fcntl)(Args_Fcntl)
int Init(int *X=0)
Retv_Readdir64(* Readdir64)(Args_Readdir64)
Retv_Fflush(* Fflush)(Args_Fflush)
Retv_Fstat64(* Fstat64)(Args_Fstat64)
Retv_Fclose(* Fclose)(Args_Fclose)
Retv_Fseek(* Fseek)(Args_Fseek)
Retv_Fdatasync(* Fdatasync)(Args_Fdatasync)
Retv_Fwrite(* Fwrite)(Args_Fwrite)
Retv_Acl(* Acl)(Args_Acl)
Retv_Statx(* Statx)(Args_Statx)
Retv_Writev(* Writev)(Args_Writev)
Retv_Read(* Read)(Args_Read)
Retv_Stat(* Stat)(Args_Stat)
Retv_Fseeko(* Fseeko)(Args_Fseeko)
Retv_Fsync(* Fsync)(Args_Fsync)
Retv_Rename(* Rename)(Args_Rename)
Retv_Close(* Close)(Args_Close)
Retv_Statfs64(* Statfs64)(Args_Statfs64)
Retv_Statvfs(* Statvfs)(Args_Statvfs)
Retv_Lgetxattr(* Lgetxattr)(Args_Lgetxattr)
Retv_Ftruncate64(* Ftruncate64)(Args_Ftruncate64)
Retv_Lseek(* Lseek)(Args_Lseek)
Retv_Ftello(* Ftello)(Args_Ftello)
Retv_Pread(* Pread)(Args_Pread)
Retv_Rewinddir(* Rewinddir)(Args_Rewinddir)
Retv_Readdir(* Readdir)(Args_Readdir)
Retv_Lseek64(* Lseek64)(Args_Lseek64)
Retv_Statvfs64(* Statvfs64)(Args_Statvfs64)
Retv_Truncate64(* Truncate64)(Args_Truncate64)
Retv_Truncate(* Truncate)(Args_Truncate)
Retv_Ftell(* Ftell)(Args_Ftell)
Retv_Fread(* Fread)(Args_Fread)
Retv_Open64(* Open64)(Args_Open64)
Retv_Fopen64(* Fopen64)(Args_Fopen64)
Retv_Fopen(* Fopen)(Args_Fopen)
Retv_Telldir(* Telldir)(Args_Telldir)
Retv_Fseeko64(* Fseeko64)(Args_Fseeko64)
Retv_Readv(* Readv)(Args_Readv)
Retv_Stat64(* Stat64)(Args_Stat64)
Retv_Statfs(* Statfs)(Args_Statfs)
Retv_Pwrite(* Pwrite)(Args_Pwrite)
Retv_Pread64(* Pread64)(Args_Pread64)
Retv_Readdir64_r(* Readdir64_r)(Args_Readdir64_r)
Retv_Fcntl64(* Fcntl64)(Args_Fcntl64)
Retv_Seekdir(* Seekdir)(Args_Seekdir)
Retv_Lstat64(* Lstat64)(Args_Lstat64)
Retv_Chdir(* Chdir)(Args_Chdir)
Retv_Getxattr(* Getxattr)(Args_Getxattr)
Retv_Open(* Open)(Args_Open)
Retv_Access(* Access)(Args_Access)
Retv_Ftruncate(* Ftruncate)(Args_Ftruncate)
Retv_Closedir(* Closedir)(Args_Closedir)
Retv_Pathconf(* Pathconf)(Args_Pathconf)
Retv_Lstat(* Lstat)(Args_Lstat)
Retv_Write(* Write)(Args_Write)
Retv_Readdir_r(* Readdir_r)(Args_Readdir_r)
Retv_Rmdir(* Rmdir)(Args_Rmdir)
Retv_Fgetxattr(* Fgetxattr)(Args_Fgetxattr)
Retv_Fstat(* Fstat)(Args_Fstat)
Retv_Unlink(* Unlink)(Args_Unlink)
Retv_Pwrite64(* Pwrite64)(Args_Pwrite64)
int Load_Error(const char *epname, int retv=-1)
Retv_Ftello64(* Ftello64)(Args_Ftello64)