Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
856 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Donner droits a un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Donner droits a un fichier

n°1527663
DrOctopus
Posté le 13-03-2007 à 08:15:43  profilanswer
 

Bonjour,
je suis sous LINUX et j'ai un programme en C qui créer et ecrit dans un fichier texte.
J'aimerais donner des droits a ce fichiers (777) , mais je n'arrive pas à trouver comment on fait.
Pourriez vous m'aider svp ?
d'avance merci

mood
Publicité
Posté le 13-03-2007 à 08:15:43  profilanswer
 

n°1527675
Combi_A_Ve​ndre
Posté le 13-03-2007 à 08:38:43  profilanswer
 

Si tu tapes la commande "man 2 chmod", tu vois l'utilisation en C de chmod.
 
       #include <sys/types.h>
       #include <sys/stat.h>
 
       int chmod(const char *path, mode_t mode);
       int fchmod(int fildes, mode_t mode);
 
La première fonction permet de changer les droits sur un fichier identifié par un chemin, la seconde sur une référence de fichier.
 
Tout le détail :
http://www.linux-kheops.com/doc/ma [...] mod.2.html
 
vw.

n°1527677
Elmoricq
Modérateur
Posté le 13-03-2007 à 08:43:44  profilanswer
 

La réponse a été donnée mais, juste en passant, c'est inutile de donner les droits d'exécutions à un fichier de données.
 
Donne-lui 666 (r+w pour user/group/other) à la rigueur, voire un classique 644 (r+w pour user, read only pour group/other).

n°1527685
DrOctopus
Posté le 13-03-2007 à 09:11:48  profilanswer
 

Merci pour cette réponse aussi rapide. En fait je veux mettre des droits sur ce fichier car derriere j'ai un script php qui va lire ce fichier. Donc si g bien compris, je peux utiliser la fonction chmod, et ca va me donner qqch comme ca:
const char *pathname = /var/www/monfichier.txt;
chmod (pathname,666);  
??

n°1527873
Combi_A_Ve​ndre
Posté le 13-03-2007 à 14:31:40  profilanswer
 

Il y a moyen de faire plus portable du genre :
mask = S_IRUSR (S_IREAD) | S_IWUSR (S_IWRITE) | ...
 
vw

n°1528650
Dumbledore
Posté le 14-03-2007 à 21:28:32  profilanswer
 

Combi_A_Vendre a écrit :

Il y a moyen de faire plus portable du genre :
mask = S_IRUSR (S_IREAD) | S_IWUSR (S_IWRITE) | ...
 
vw


 
+1, ça permet de faire en sorte que ton programme fonctionne sur tout OS compatible POSIX et ça rends aussi le code plus lisible par quelqu'un qui ne connait pas forcément les détails des droits d'accès (notation en octal en particulier)

n°1528663
Sve@r
Posté le 14-03-2007 à 22:02:11  profilanswer
 

DrOctopus a écrit :

je suis sous LINUX et j'ai un programme en C qui créer et ecrit dans un fichier texte.
J'aimerais donner des droits a ce fichiers (777) , mais je n'arrive pas à trouver comment on fait.


Si tu utilises "open()" tu peux spécifier les droits à mettre au fichier lors de sa création
=> open("fichier", O_WRONLY|O_CREAT|O_APPEND, 0777);
Malheureusement avec "fopen()" tu peux pas.
 

DrOctopus a écrit :

Donc si g bien compris, je peux utiliser la fonction chmod, et ca va me donner qqch comme ca:
const char *pathname = /var/www/monfichier.txt;
chmod (pathname,666); ??


 
Petit détail dangereux: les droits sont à mettre en "octal" c'est à dire qu'il faut explicitement faire commencer le nombre par un "0" => chmod(pathname, 0666)
sinon il y aura conversion du nombre 666 (base 10) en nombre octal (1232) et au lieu d'avoir "rw-rw-rw-" t'auras "-w--wx-wT" !!!
 
Bien évidemment la solution de "Combi_A_Vendre" est beaucoup plus standard...
 


Message édité par Sve@r le 14-03-2007 à 22:07:05

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Donner droits a un fichier

 

Sujets relatifs
Fichier de configuration à la BD et securitéDroits administrateurs partagés sur Infomaniak
[Batch] Comment lire la 7e ligne d'un fichier ? [Résolu]Problème avec un fichier externe pour mes variables
Suggestion: Ajouter un "Copier et renommez fichier existant en .old"Lire un fichier txt ligne par ligne
[VBA WORD] ouverture d'un fichier selon un templateEnvoie de fichier encodé en URLEncode
Récupération d'n fichier par FTPfichier en vb
Plus de sujets relatifs à : Donner droits a un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR