Bonjour,
Je souhaite ouvrir un fichier en écriture en mode append. Pour cela, j'emploie la fonction suivante :
Comme vous pouvez le constater, si le fichier n'existe pas, il est créé et je lui accorde les droits en lecture/écriture pour le propriétaire, le groupe et les autres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 let fd = Unix.openfile "log.txt" [ O_WRONLY ; O_APPEND ; O_CREAT ] 0o666 in
Problème: ça ne fonctionne pas correctement pour la gestion des droits.
Le fichier créé obtient les droits -rw-r--r--
Je suis obligé de contourner le problème de la façon suivante :
Auriez-vous des explications à ce mystère ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 let f_existed = Sys.file_exists "log.txt" in try let fd = Unix.openfile "log.txt" [ O_WRONLY ; O_APPEND ; O_CREAT ] 0o666 in (if f_existed = false then Unix.fchmod fd 0o666 ); ignore (Unix.write fd to_log 0 (String.length to_log)); Unix.close fd with Unix_error (err,_,_) ->
Partager