4
%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
4
%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
6
6
%% The contents of this file are subject to the Erlang Public License,
7
7
%% Version 1.1, (the "License"); you may not use this file except in
8
8
%% compliance with the License. You should have received a copy of the
9
9
%% Erlang Public License along with this software. If not, it can be
10
10
%% retrieved online at http://www.erlang.org/.
12
12
%% Software distributed under the License is distributed on an "AS IS"
13
13
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
14
14
%% the License for the specific language governing rights and limitations
15
15
%% under the License.
21
21
-define(FILE_HRL_, 1).
22
22
%%--------------------------------------------------------------------------
24
%%-type namelist() :: [char() | atom() | namelist()].
25
-type namelist() :: [_]. %% XXX: GROSS OVERAPPROXIMATION -- FIX ME
26
-type name() :: string() | atom() | namelist().
27
-type posix() :: atom().
29
-type date() :: {pos_integer(), pos_integer(), pos_integer()}.
30
-type time() :: {non_neg_integer(), non_neg_integer(), non_neg_integer()}.
31
-type date_time() :: {date(), time()}.
33
%%--------------------------------------------------------------------------
36
25
{size :: non_neg_integer(), % Size of file in bytes.
37
26
type :: 'device' | 'directory' | 'other' | 'regular' | 'symlink',
38
27
access :: 'read' | 'write' | 'read_write' | 'none',
39
atime :: date_time(), % The local time the file was last read:
40
% {{Year, Mon, Day}, {Hour, Min, Sec}}.
41
mtime :: date_time(), % The local time the file was last written.
42
ctime :: date_time(), % The interpretation of this time field
43
% is dependent on operating system.
44
% On Unix it is the last time the file or
45
% or the inode was changed. On Windows,
46
% it is the creation time.
28
atime :: file:date_time(), % The local time the file was last read:
29
% {{Year, Mon, Day}, {Hour, Min, Sec}}.
30
mtime :: file:date_time(), % The local time the file was last written.
31
ctime :: file:date_time(), % The interpretation of this time field
32
% is dependent on operating system.
33
% On Unix it is the last time the file
34
% or the inode was changed. On Windows,
35
% it is the creation time.
47
36
mode :: integer(), % File permissions. On Windows,
48
37
% the owner permissions will be
49
38
% duplicated for group and user.
63
52
-record(file_descriptor,
64
{module :: module(), % Module that handles this kind of file
53
{module :: module(), % Module that handles this kind of file
65
54
data :: term()}). % Module dependent data
67
-type fd() :: pid() | #file_descriptor{}.
69
56
%%--------------------------------------------------------------------------