mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-02-21 09:02:37 +00:00
129 lines
2.4 KiB
C
129 lines
2.4 KiB
C
|
#ifndef FILE_H_INCLUDED
|
||
|
#define FILE_H_INCLUDED
|
||
|
|
||
|
#include <fcntl.h>
|
||
|
#include <sys/types.h>
|
||
|
#include <sys/stat.h>
|
||
|
#include <limits.h>
|
||
|
|
||
|
#include "bool.h"
|
||
|
#include "int.h"
|
||
|
#include "xmlrpc-c/abyss.h"
|
||
|
|
||
|
#ifndef NAME_MAX
|
||
|
#define NAME_MAX 1024
|
||
|
#endif
|
||
|
|
||
|
#ifdef WIN32
|
||
|
#ifndef __BORLANDC__
|
||
|
#define O_APPEND _O_APPEND
|
||
|
#define O_CREAT _O_CREAT
|
||
|
#define O_EXCL _O_EXCL
|
||
|
#define O_RDONLY _O_RDONLY
|
||
|
#define O_RDWR _O_RDWR
|
||
|
#define O_TRUNC _O_TRUNC
|
||
|
#define O_WRONLY _O_WRONLY
|
||
|
#define O_TEXT _O_TEXT
|
||
|
#define O_BINARY _O_BINARY
|
||
|
#endif
|
||
|
|
||
|
#define A_HIDDEN _A_HIDDEN
|
||
|
#define A_NORMAL _A_NORMAL
|
||
|
#define A_RDONLY _A_RDONLY
|
||
|
#define A_SUBDIR _A_SUBDIR
|
||
|
#else
|
||
|
#define A_SUBDIR 1
|
||
|
#define O_BINARY 0
|
||
|
#define O_TEXT 0
|
||
|
#endif /* WIN32 */
|
||
|
|
||
|
#ifdef WIN32
|
||
|
|
||
|
#if MSVCRT
|
||
|
typedef struct _stati64 TFileStat;
|
||
|
typedef struct _finddatai64_t TFileInfo;
|
||
|
|
||
|
#else /* MSVCRT */
|
||
|
|
||
|
typedef struct stat TFileStat;
|
||
|
typedef struct finddata_t {
|
||
|
char name[NAME_MAX+1];
|
||
|
int attrib;
|
||
|
uint64_t size;
|
||
|
time_t time_write;
|
||
|
WIN32_FIND_DATA data;
|
||
|
} TFileInfo;
|
||
|
|
||
|
#endif /* MSVCRT */
|
||
|
|
||
|
#else /* WIN32 */
|
||
|
|
||
|
#include <unistd.h>
|
||
|
#include <dirent.h>
|
||
|
|
||
|
typedef struct stat TFileStat;
|
||
|
|
||
|
typedef struct finddata_t {
|
||
|
char name[NAME_MAX+1];
|
||
|
int attrib;
|
||
|
uint64_t size;
|
||
|
time_t time_write;
|
||
|
} TFileInfo;
|
||
|
|
||
|
#endif
|
||
|
|
||
|
typedef struct TFileFind TFileFind;
|
||
|
|
||
|
typedef struct TFile {
|
||
|
int fd;
|
||
|
} TFile;
|
||
|
|
||
|
bool
|
||
|
FileOpen(TFile ** const filePP,
|
||
|
const char * const name,
|
||
|
uint32_t const attrib);
|
||
|
|
||
|
bool
|
||
|
FileOpenCreate(TFile ** const filePP,
|
||
|
const char * const name,
|
||
|
uint32_t const attrib);
|
||
|
|
||
|
bool
|
||
|
FileClose(TFile * const fileP);
|
||
|
|
||
|
bool
|
||
|
FileWrite(const TFile * const fileP,
|
||
|
const void * const buffer,
|
||
|
uint32_t const len);
|
||
|
|
||
|
int32_t
|
||
|
FileRead(const TFile * const fileP,
|
||
|
void * const buffer,
|
||
|
uint32_t const len);
|
||
|
|
||
|
bool
|
||
|
FileSeek(const TFile * const fileP,
|
||
|
uint64_t const pos,
|
||
|
uint32_t const attrib);
|
||
|
|
||
|
uint64_t
|
||
|
FileSize(const TFile * const fileP);
|
||
|
|
||
|
bool
|
||
|
FileStat(const char * const filename,
|
||
|
TFileStat * const filestat);
|
||
|
|
||
|
bool
|
||
|
FileFindFirst(TFileFind ** const filefind,
|
||
|
const char * const path,
|
||
|
TFileInfo * const fileinfo);
|
||
|
|
||
|
bool
|
||
|
FileFindNext(TFileFind * const filefind,
|
||
|
TFileInfo * const fileinfo);
|
||
|
|
||
|
void
|
||
|
FileFindClose(TFileFind * const filefind);
|
||
|
|
||
|
#endif
|