/usr/include/IceUtil/FileUtil.h is in libzeroc-ice35-dev 3.5.1-6.4ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | // **********************************************************************
//
// Copyright (c) 2003-2013 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
#ifndef ICE_FILE_UTIL_H
#define ICE_FILE_UTIL_H
#include <IceUtil/Config.h>
#include <IceUtil/Shared.h>
#include <IceUtil/Handle.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <fstream>
namespace IceUtilInternal
{
//
// Detemine if path is an absolute path.
//
ICE_UTIL_API bool isAbsolutePath(const std::string&);
//
// Determine if a file exists.
//
ICE_UTIL_API bool fileExists(const std::string&);
//
// Determine if a directory exists.
//
ICE_UTIL_API bool directoryExists(const std::string&);
#ifdef _WIN32
#if defined(__MINGW32__)
typedef struct _stat structstat;
#else
typedef struct _stat64i32 structstat;
#endif
#ifdef _MSC_VER
# define O_RDONLY _O_RDONLY
# define O_BINARY _O_BINARY
# define S_ISDIR(mode) ((mode) & _S_IFDIR)
# define S_ISREG(mode) ((mode) & _S_IFREG)
#endif
#else
typedef struct stat structstat;
# define O_BINARY 0
#endif
//
// OS stat
//
ICE_UTIL_API int stat(const std::string&, structstat*);
ICE_UTIL_API int remove(const std::string&);
ICE_UTIL_API int rename(const std::string&, const std::string&);
ICE_UTIL_API int rmdir(const std::string&);
ICE_UTIL_API int mkdir(const std::string&, int);
ICE_UTIL_API FILE* fopen(const std::string&, const std::string&);
ICE_UTIL_API int open(const std::string&, int);
#ifndef ICE_OS_WINRT
ICE_UTIL_API int getcwd(std::string&);
#endif
ICE_UTIL_API int unlink(const std::string&);
ICE_UTIL_API int close(int);
//
// This class is used to implement process file locking. This class
// is not intended to do file locking within the same process.
//
class ICE_UTIL_API FileLock : public IceUtil::Shared, public IceUtil::noncopyable
{
public:
//
// The constructor opens the given file (eventually creating it)
// and acquires a lock on the file or throws FileLockException if
// the file couldn't be locked.
//
// If the lock can be acquired, the process pid is written to the
// file.
//
FileLock(const std::string&);
//
// The destructor releases the lock and removes the file.
//
virtual ~FileLock();
private:
#ifdef _WIN32
HANDLE _fd;
#else
int _fd;
#endif
std::string _path;
};
typedef IceUtil::Handle<FileLock> FileLockPtr;
class ICE_UTIL_API ifstream : public std::ifstream
{
public:
ifstream();
ifstream(const std::string&, std::ios_base::openmode mode = std::ios_base::in);
void open(const std::string&, std::ios_base::openmode mode = std::ios_base::in);
#ifdef __SUNPRO_CC
using std::ifstream::open;
#endif
private:
// Hide const char* definitions since they shouldn't be used.
ifstream(const char*);
void open(const char*, std::ios_base::openmode mode = std::ios_base::in);
};
class ICE_UTIL_API ofstream : public std::ofstream
{
public:
ofstream();
ofstream(const std::string&, std::ios_base::openmode mode = std::ios_base::out);
void open(const std::string&, std::ios_base::openmode mode = std::ios_base::out);
#ifdef __SUNPRO_CC
using std::ofstream::open;
#endif
private:
// Hide const char* definitions since they shouldn't be used.
ofstream(const char*);
void open(const char*, std::ios_base::openmode mode = std::ios_base::out);
};
}
#endif
|