Poldi Geschrieben 4. Januar 2001 Teilen Geschrieben 4. Januar 2001 Hallo Leutens, ich will in einem C Programm einen Unix Befehl (chmod 000) ausführen. Kann aber leider nix dazu finden wie mans macht. Ich wäre sehr dankbar für eure Hilfe, am besten auch mit kleinem Beispiel, damit ich weiß, wie mans anwendet (aus den manpages werde ich oft nicht so schlau ... ) Danke!! Poldi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gajUli Geschrieben 4. Januar 2001 Teilen Geschrieben 4. Januar 2001 Hi Poldi, in der stdlib.h von ANSI-C gibt es int system(const char* string); return value ist 0. system(NULL) returniert Non-Zero, wenn ein command procossor laeuft, ansonsten 0. Zum Aufruf von Programmen nimmt man exec(). Alles klar? Uli ------------------ Uli's Prüfungspages ... die Seite mit den Prüfungshinweisen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DevilDawn Geschrieben 4. Januar 2001 Teilen Geschrieben 4. Januar 2001 Für chmod werf einen Blick auf linux:~ # man 2 chmod unix $ man -s2 chmod Dann triffst du direkt auf: NAME chmod, fchmod - change access permission mode of file SYNOPSIS #include <sys/types.h> #include <sys/stat.h> int chmod(const char *path, mode_t mode); int fchmod(int fildes, mode_t mode); Damit sollte es am einfachsten und schnellsten gehen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Poldi Geschrieben 4. Januar 2001 Autor Teilen Geschrieben 4. Januar 2001 bei uns sagt mir die manpage nix davon daß es ein c befehl ist wir haben digital unix bei uns exec gibt es wohl, allerdings wenn ich "exec(umask 000)" in den code einfüge, meckert der compiler hat jemand von euch vielleicht ein beispiel für popen() ?? ein kollege meinte, damit würde es gehen, aber ich versteh die manpage mal wieder nicht ... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gajUli Geschrieben 4. Januar 2001 Teilen Geschrieben 4. Januar 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">Zitat:</font><HR>Original erstellt von Poldi: exec gibt es wohl, allerdings wenn ich "exec(umask 000)" in den code einfüge, meckert der compiler Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Poldi Geschrieben 5. Januar 2001 Autor Teilen Geschrieben 5. Januar 2001 danke uli, hab gestern den wald vor bäumen nicht mehr gesehen, war wohl etwas überarbeitet ... *grins* habs ans laufen gebracht *jubel* dieses programm treibt mich noch zum wahnsinn, da kann man nix machen so long ... ich geht jetzt kaffee trinken ... poldi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gajUli Geschrieben 5. Januar 2001 Teilen Geschrieben 5. Januar 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">Zitat:</font><HR>Original erstellt von Poldi: habs ans laufen gebracht *jubel* Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Poldi Geschrieben 5. Januar 2001 Autor Teilen Geschrieben 5. Januar 2001 na mit system("umask 000"); ...!! <= quasi so wie ihr gesagt habt, meister ... das problem ist, daß ich noch nicht so der star programmierer bin, die manpages mich meist zur verzweiflung bringen, und ich ansonsten nur 2 anfängerbücher habe, in dem so interessante themen wie reguläre ausdrücke in c komplett ignoriert werden ... *grummel* ... aber dafür hab ich ja euch ... *grins* so long ... poldi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
maddin Geschrieben 9. Januar 2001 Teilen Geschrieben 9. Januar 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">Zitat:</font><HR>Original erstellt von Uli Luethen: Hi Poldi, int system (const char* string); return value ist 0. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Poldi Geschrieben 9. Januar 2001 Autor Teilen Geschrieben 9. Januar 2001 ist egal, hat mir eh nix gebracht ... wenn man aus einem c programm heraus system(umask 000) ausführt, wird dieser befehl in einer untershell ausgeführt, die sofort nach beendigung des befehls auch wieder geschlossen wird. für mich also uninteressant. ich hab mir jetzt ein aufrufscript in tcl geschrieben, ist zwar etwas unelegant, aber es tuts ... danke trotzdem ... poldi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gajUli Geschrieben 9. Januar 2001 Teilen Geschrieben 9. Januar 2001 Hi Maddin, Du bist meiner Meinung nach mit dem Rueckgabewert im Irrtum, jedenfalls wenn Du die Funktion system() aus <stdlib.h> meinst. Die ist im ANSI-C-Standard nun einmal so festgeschrieben, wie ich es oben beschrieben hatte. Alles weitere waere dann eine hausgemachte Eigenart (volgo Standardverstoss) Deines Compile-Time-Environments ohne Allgemeingueltigkeit. Ausserdem ruft system() den Kommandozeileninterpreter auf und nicht ein Programm, so wie in Deinem Beispiel. Das muss auch so sein, um Typenkonflikte zu vermeiden. Was sollte z. B. geschehen, wenn Deine "test.exe" einen double returnieren wuerde, waehrend system() einen int liefern muss? Waer doch ziemlicher Murks, oder? Uli ------------------ Uli's Prüfungspages ... die Seite mit den Prüfungshinweisen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Poldi Geschrieben 9. Januar 2001 Autor Teilen Geschrieben 9. Januar 2001 also, in meinem buch steht folgendes: "int system(const char *s) der string s wird von einem befehlsprozessor der umgebung ausgeführt, vergleichbar mit einem in einer shell eingegebenen befehl. der status des befehlsprozessors wird zurückgegeben. ist s gleich 0 wird bei nichtvorhandensein eines befehlsprozessors der wert 0, ansonsten ein wert ungleich 0 zurückgegeben." alles klar? gruß, poldi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gajUli Geschrieben 9. Januar 2001 Teilen Geschrieben 9. Januar 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">Zitat:</font><HR>Original erstellt von Poldi: also, in meinem buch steht folgendes: ... alles klar? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Poldi Geschrieben 12. Januar 2001 Autor Teilen Geschrieben 12. Januar 2001 aaalso ... ich hab da gar nix verwechselt mit NULL und 0, wenn dann war das Andre Wilms, der das buch "c programmierung lernen" geschrieben hat (verlag: addison-wesley). so ein greenhorn bin ich dann auch nicht mehr, daß ich NULL und 0 verwechsle ... cheerio ... poldi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gajUli Geschrieben 12. Januar 2001 Teilen Geschrieben 12. Januar 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">Zitat:</font><HR>Original erstellt von Poldi: aaalso ... ich hab da gar nix verwechselt mit NULL und 0, wenn dann war das Andre Wilms, der das buch "c programmierung lernen" geschrieben hat (verlag: addison-wesley). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.