C++ codes pour changer un attribut

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

  • Votes
  • Date
  • Date décroissante
  1. 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. Contributeur
      tu vois, ce n'était pas si compliquer que ça à utiliser chmod.
  2. Contributeur
    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.
    1. Modérateur
      man 2 chmod
      man 2 fchmod
      feront ton bonheur.
      1. Contributeur
        prem's :-P
    2. salut

      mais comment écrire les codes

      merci
      1. Contributeur
        C'est pourtant clairement écris dans la page de manuel ! Où bloques tu ?
    3. int fchmod(int install 00001);

      ne marche pas.

      comment écrire ?

      vous pouvez écrire un example.

      merci
      1. Contributeur
        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!
    4. 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