PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : umpf ncurses: programmausgabe holen



linuxhanz
26-06-2003, 08:28
OK, habe hier ein Programm: netmon.c -0.2

Das gibt in einem ncurses Window aus, welche Hosts "up" oder "down"
sind, realisiert wird das ganze simple duch ping. (+Konfigdatei)

Nun möchte ich gern additional zu Ping ein Programm ausführen und dessen
Ausgabe entweder an das Fenster appenden ODER in einem 2. Fenster
ausgeben.

Da ick erstmal sehr uncreativ war, hab ich nmap genommen, daß nach IP-Protos
scannt. nmap -T 1 -oN nmaplog -sO HOST


Nun die Fage, Kann man den nmap Output nicht in einen Buffer schreiben
und dann printen? Oder ist dafür eine Logdatei notwendig?

Und wie kann man die geschickt einlesen?
Und ists besser mit forken oder gleich mit Threads zu arbeiten?
Momentan wird das Subprogramm noch über system() ausgeführt :rolleyes:

Sorry ist wohl falsche Abteilung, NEWS?

pulp
28-06-2003, 13:28
kannst es so machen, keine ahnung ob das sauberer code ist:




FILE *output;
char command_line[2048];

sprintf(command_line, "echo -E '%s' | smbclient -M \"%s\" ", msg,name);

output = popen(command_line, "r");

if (!output) {
fprintf(stderr, "Error: Cannot send message\n");
return 0;
}


i = fread(command_line, 1, sizeof(command_line), output);
pclose(output);
command_line[i] = 0;

/* -- sommaire investigation of the output -- */
if (strstr(command_line, "sh: line 1: smbclient:")) {

printf("\n`smbclient' command cannot be run;\nnot installed?\n");




gruss pulp

linuxhanz
01-07-2003, 20:10
Vielen Dank, dachte schon das Topic würde leer ausgehen.
Ich werde das Sample zu Hause prüfen, und dann näheres
berichten.

Ps Der Author hat nix dagegen das Tool weiterzuentwicklen.

Es steht jetzt unter der GPL.

So eine Netzwerk-TOP solls mal werden.