// Formatting library for C++ - mocks of POSIX functions // // Copyright (c) 2012 - present, Victor Zverovich // All rights reserved. // // For the license information refer to format.h. #ifndef FMT_POSIX_TEST_H #define FMT_POSIX_TEST_H #include #include #ifdef _WIN32 # include #else # include // for FreeBSD version # include // for ssize_t #endif #ifndef _MSC_VER struct stat; #endif namespace test { #ifndef _MSC_VER // Size type for read and write. typedef size_t size_t; typedef ssize_t ssize_t; int open(const char *path, int oflag, int mode); int fstat(int fd, struct stat *buf); #else typedef unsigned size_t; typedef int ssize_t; errno_t sopen_s( int* pfh, const char *filename, int oflag, int shflag, int pmode); #endif #ifndef _WIN32 long sysconf(int name); #else DWORD GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh); #endif int close(int fildes); int dup(int fildes); int dup2(int fildes, int fildes2); FILE *fdopen(int fildes, const char *mode); ssize_t read(int fildes, void *buf, size_t nbyte); ssize_t write(int fildes, const void *buf, size_t nbyte); #ifndef _WIN32 int pipe(int fildes[2]); #else int pipe(int *pfds, unsigned psize, int textmode); #endif FILE *fopen(const char *filename, const char *mode); int fclose(FILE *stream); int (fileno)(FILE *stream); } // namespace test #define FMT_SYSTEM(call) test::call #endif // FMT_POSIX_TEST_H