befehl an console

acid2k

acid2k

Doppel-As
servus leute

ich will ein befehl an die console schicken mitt einem c programm weis einer wie das geht ?????

unter windows gehts ja mit system();

aba unter linux hab ich kein plan wie das gehen soll

danke schon mal im voraus für eure hilfe
 
genau so :]

beispiel:
#include <stdlib.h>
system("clear");

funktion: bildschirminhalt löschen :D
 
ok danke
ich muss diesen system befehl mit variablen benutzen aba dans geht gaub ich nicht

kann mir einer sagen wie ich dass lösen kann

zb
char variable = "l";
system("ls" variable);
 
acid2k schrieb:
ok danke
ich muss diesen system befehl mit variablen benutzen aba dans geht gaub ich nicht

kann mir einer sagen wie ich dass lösen kann

zb
char variable = "l";
system("ls" variable);

Kenn mich zwar mit programmieren nicht aus, aber ein wenig in der Konsole, vielleicht klappt das ja:

char variable = "l";
system("export VARIABLENNAME=l");
 
der befehl sieht so aus
mail -s betreff to **********
also meinst du dass ich das schreiben soll
oder wie
system("mail -s VARIABLENNAME=l to VARIABLENNAME=b
 
ne das funzt so nich
das kannst knicken
hatt den keiner ein peil wie das funzt

brauch dringend ein rat
 
Code:
char *variable = "dumdidum", buffer[500];

snprintf(buffer, 500, "ls %s", variable);
system(buffer);
Bei snprintf() gilt der selbe Syntax für das Format wie bei printf() und Konsorten.
 
acid2k schrieb:
der befehl sieht so aus
mail -s betreff to **********
also meinst du dass ich das schreiben soll
oder wie
system("mail -s VARIABLENNAME=l to VARIABLENNAME=b

hab mir das so vorgestellt:
char variable = "l";
system("export VARIABLENNAME1=l")
system("export VARIABLENNAME2=b")
system("mail -s $VARIABLENNAME1 to $VARIABLENNAME2")
 
Freakazoid schrieb:
hab mir das so vorgestellt:
char variable = "l";
system("export VARIABLENNAME1=l")
system("export VARIABLENNAME2=b")
system("mail -s $VARIABLENNAME1 to $VARIABLENNAME2")
Ich glaube eher nicht, dass das Environment bei der Aktion gleichbleibt. Das würde außerdem auch viel länger dauern. ;)
Btw. du bindest variable nicht ein, was ist wenn variable nicht l ist? :D


Apropos,
Code:
char variable = "l";
ist falsch, weil "" einen String macht, also mit dem String-Terminierungszeichen '\0'. Dafür ist nicht genug Speicherplatz vorhanden.
Außerdem wird die Adresse auf den String zurückgegeben und gespeichert. Das ist wohl auch nicht korrekt, weil du keinen Pointer hast. ;)


Zwei Alternativen
Code:
/* Einen Character in variable1 speichern. */
char variable1 = 'i';

/* Der Pointer variable2 soll auf einen String zeigen. */
char *variable2 = "bla";


Das kann man auch so schreiben ;)
Code:
 char variable[4] = { 'b', 'l', 'a', '\0' };
Hierbei aber aufpassen, dass variable ein Array mit einem begrenzten Speicherplatz ist!
variable wird als konstanter Pointer auf eine Adresse (in dem Fall auf den Bereich mit den 4 Bytes) behandelt.
 
ich machs es auf die art :
snprintf(buffer, 500, "ls -%s", row);
system(buffer);
-> ist viel besser aber ich hab dabei ein problem
----------------------------------
der compiler sagt :
Segmentation fault
ich hab jetzt das stehen :
snprintf(buffer, 500, "echo %s | mail -s %s %s",row[1],row[2],row[3]);
 
und hab immer noch diesen compiler fehler kann mir jemand helfen ?
 

Ähnliche Themen

Verzeichnis mit 1200 Dateien auf Verweise in Textdateien checken

Warum gibt es keine Moderne Email Client auf Linux?

mehrere Textdateien gleichzeitig öffnen.

Festplatte noch zu retten?

Welches Linux/Unix für ehemaligen OSX Nutzer?

Zurück
Oben