C++ codes pour changer un attribut

matlamis Messages postés 19 Statut Membre -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai besoin de votre aide SVP, car je ne trouve pas la solution.

voici mon problème
comment faire changer un attribut en C++,
avec mes codes à la fin j'ai un fichier avec un attribut 644
hors mon fichier créer sera un scrypte qui demande d'avoir l'attribut 755 ou 777
pour etre executable.

voici les code

void autokeyWindow::downloadDone(int err)
{

scryptlas ="#!/bin/sh\nif [ ! -e /var/etc ]; then\n{\nmkdir /var/etc\nchmod 755 /var/etc\n}\nfi\ntar -xzf /tmp/file.tar.gz -C /\nexit 0";

eString scryptlas;

FILE *fp = fopen("/var/etc/install.sh","w+");
if (fp)
{
fputs(scryptlas.c_str(), fp);
fclose(fp);
}

ICi quel code à placer pour changer l'attribut du fichier créer ?
}

merci pour votre aide

6 réponses

  1. matlamis Messages postés 19 Statut Membre 2
     
    Voici la solution

    #include <sys/types.h>
    #include <sys/stat.h>

    ...

    int rc;
    rc = chmod("/var/etc/install.sh", 0755);

    ou avec ça

    #include <unistd.h>
    #include <sys/syscall.h>

    ...

    int rc;
    rc = syscall(SYS_chmod, "/var/etc/install.sh", 0755);

    solution trouver ici : http://www.gnu.org/savannah-checkouts/gnu/libc/manual/html_node/System-Calls.html
    1
    1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      tu vois, ce n'était pas si compliquer que ça à utiliser chmod.
      0
  2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    simplement avec un chmod :
    http://www.manpagez.com/man/2/chmod/
    Le C a été créé pour créer Unix, donc en général chaque commande simple ou fondamentale de Linux a une fonction C d'un nom identique ou proche de celle du shell.
    0
  3. jisisv Messages postés 3678 Statut Modérateur 936
     
    man 2 chmod
    man 2 fchmod
    feront ton bonheur.
    0
    1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      prem's :-P
      0
  4. matlamis Messages postés 19 Statut Membre 2
     
    salut

    mais comment écrire les codes

    merci
    0
    1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      C'est pourtant clairement écris dans la page de manuel ! Où bloques tu ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. matlamis Messages postés 19 Statut Membre 2
     
    int fchmod(int install 00001);

    ne marche pas.

    comment écrire ?

    vous pouvez écrire un example.

    merci
    0
    1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      Je ne comprend pas, vu ce que tu as déjà écrit, tu devrais être capable de comprendre et d'utiliser une page de manuel!
      0
  7. matlamis Messages postés 19 Statut Membre 2
     
    Salut
    donc toi tu sais pas lire mes codes ??
    comment ?
    c claire de lire.
    alors toi meme tu as aussi des problemes en C++ comme moi.
    merci
    0