Hi,
ich moechte von meinem c++ Program ein exterenes Program starten und den output dann weiterverarbeiten. Also z.B. ein shell-script starten ( am besten in einem eigen thread) oder mit grep eine zeile aus einer datei auslesen. Wie geht das? Kennt einer einen guten link?
thx
c++ Program ruft externes Program
hi,
also in C geht's ganz einfach:
also in C geht's ganz einfach:
Code: Alles auswählen
FILE *greppipe;
char zeile[88];
greppipe = popen ("/bin/grep 'ZzLeCzZ' /etc/passwd", "r");
if (greppipe) {
fgets (zeile, sizeof(zeile), greppipe);
// hier koennte Ihre Werbung stehen
pclose (greppipe);
}
Beware of programmers who carry screwdrivers.
Das ist eine "pipe" und die ist nur im Speicher; die Datei, die grep durchsucht,ZzLeCzZ hat geschrieben:zum verstaendniss: das FILE ist jetzt keine richtige Datei sondern nur im ein Object im Speicher? oder wie funktioniert das genau?
ist wahrscheinlich eine richtige Datei
Es gibt auch "named pipes" auf der Platte, aber die kommen hier nicht ins Spiel.
Wenn's aber um Systemlast geht, muss man bedenken, dass popen eine Shell
startet die dann wiederum das grep ausfuehrt.
Beware of programmers who carry screwdrivers.