Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
file permission integer
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 1999-03-30 (07:47)
From: Friedman Roy <roy@c...>
Subject: Re: file permission integer
The only caveat is that in Unix this also sets the user/group/other
permissions, and the equivalent in NT involves writing a C function that
sets the ACL attributes for the file.


On Mon, 29 Mar 1999, Xavier Leroy wrote:

> > The OCAML core contains a function
> > 	open_out_gen : open_flag list -> int -> string -> out_channel
> > where the integer corresponds to the file permissions set when a new file is
> > created. How is this integer interpreted? Does it vary from platform to
> > platform? (Unix vs Windows).
> > If this information is described in the doc, I apologize, but I couldn't
> > find it.
> No need to apologize, this is indeed not documented (oops!).
> The integer argument to open_*_gen follows the Unix semantics,
> i.e. 0oABC, where A are the user permissions, B the group permissions,
> C the permissions for others.  A, B, C are single octal digits
> obtained by or-ing individual permission bits: 1 for execute permission,
> 2 for write permission, and 4 for read permission.
> Under Windows, only the "write permission" bit of the "user
> permission" digit is consulted, and determines if the file is created
> read-write or read-only.  (The other permission bits don't have any
> equivalent in Win32, at least on a FAT file system.)
> So, if you pass the correct permissions for Unix, your code should
> work just fine under Windows.
> In Caml Light, we used to have symbolic names for the various
> permission bits.  I removed them in OCaml after realizing that the
> Unix bit-patterns work just fine in Windows as well.  However, the
> Unix encoding is a bit cryptic, so maybe those symbolic names were a
> good idea after all.
> All the best,
> - Xavier Leroy