11#ifndef __FILE_UTIL_H__
12#define __FILE_UTIL_H__
16#include "ws_symbol_export.h"
21#include <glib/gstdio.h>
39#define IO_BUF_SIZE (64 * 1024)
48#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
51#define S_IFIFO _S_IFIFO
54#define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFIFO)
57#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
65#define ws_statb64 struct _stat64
97WS_DLL_PUBLIC
int ws_stdio_stat64 (
const char *filename, ws_statb64 *buf);
100#define ws_rename g_rename
101#define ws_mkdir g_mkdir
102#define ws_stat64 ws_stdio_stat64
103#define ws_unlink g_unlink
104#define ws_remove g_remove
105#define ws_fopen g_fopen
106#define ws_freopen g_freopen
113typedef unsigned int ws_file_size_t;
114typedef signed int ws_file_ssize_t;
117#define ws_write _write
118#define ws_close _close
120#define ws_fseek64 _fseeki64
121#define ws_fstat64 _fstati64
122#define ws_ftell64 _ftelli64
123#define ws_lseek64 _lseeki64
124#define ws_fdopen _fdopen
125#define ws_fileno _fileno
126#define ws_isatty _isatty
127#define ws_getc_unlocked _fgetc_nolock
133#define ws_getpid _getpid
134#define ws_umask _umask
144bool ws_init_dll_search_path(
void);
154void *ws_load_library(
const char *library_name);
162GModule *load_wpcap_module(
void);
168WS_DLL_PUBLIC
void create_app_running_mutex(
void);
172WS_DLL_PUBLIC
void close_app_running_mutex(
void);
176WS_DLL_PUBLIC
int ws_close_if_possible(
int fd);
183#define ws_statb64 struct stat
187#define ws_rename rename
188#define ws_mkdir(dir,mode) mkdir(dir,mode)
189#define ws_stat64 stat
190#define ws_unlink unlink
191#define ws_remove remove
192#define ws_fopen fopen
193#define ws_freopen freopen
195typedef size_t ws_file_size_t;
196typedef ssize_t ws_file_ssize_t;
199#define ws_write write
204#define ws_close ::close
206#define ws_close close
209#define ws_close_if_possible ws_close
213#define ws_fseek64 fseeko
214#define ws_ftell64 ftello
216#define ws_fseek64(fh,offset,whence) fseek(fh,(long)(offset),whence)
217#define ws_ftell64 ftell
219#define ws_fstat64 fstat
220#define ws_lseek64 lseek
221#define ws_fdopen fdopen
222#define ws_fileno fileno
223#define ws_isatty isatty
224#define ws_getc_unlocked getc_unlocked
228#define ws_getpid getpid
229#define ws_umask umask
235#define WS_DIRENT const char
236#define ws_dir_open g_dir_open
237#define ws_dir_read_name g_dir_read_name
238#define ws_dir_get_name(dirent) dirent
239#define ws_dir_rewind g_dir_rewind
240#define ws_dir_close g_dir_close
246#define FILE_ERR_CANT_OPEN -1
247#define FILE_ERR_CANT_COMPRESS -2
248#define FILE_ERR_SHORT_WRITE -3
249#define FILE_ERR_CANT_CLOSE -4
250#define FILE_ERR_INTERNAL -5