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

chown Befehl in einem Script

Warum gibt es keine Moderne Email Client auf Linux?

mehrere Textdateien gleichzeitig öffnen.

batch script funktioniert nicht ...brauche hilfe

Zurück
Oben