C++ Code um Attribute zu ändern

Geschlossen
mathfreu - 1. November 2011 um 15:03
 kurtis - 1. November 2011 um 16:39
Hallo,


Ich brauche bitte eure Mithilfe, da ich nicht alleine vorwärts komme.

Folgendes ist mein Problem:
Wie kann ich Attribute in C++ ändern,
Mit meine Befehlscode habe ich am Ende eine Datei mit dem Attribut 644
Meine erstellte Dateien sind allerdings Skripten, die Attribute 755 oder 777 verlangen,
um ausführbar zu sein.

Hier sind die Befehlscode:
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);
  }

Welcher Befehlscode soll ich hier schreiben, um Attribute zu ändern ?
}

Danke für eure Hilfe

1 Antwort

Hallo,

Hier ein Vorschlag :


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

...

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


oder mit

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

...

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

Lösung ist aus : http://www.gnu.org/savannah-checkouts/gnu/libc/manual/html_node/System-Calls.html