http://jk0.org/projects/perl-irc-bot/
Diesen Bot nutze ich. Leider verstehe ich aber nicht, wie ich den Bot befehle geben kann. Was muss ich schreiben?
Weiter will ich ne einfache Methode impltieren mit ich ein und ausgaben steuern kann. Wie würde ich sowas als einfachstes machen?
Ich weiß das das hier nicht hin gehört. Es passt aber noch weniger nach C++
Ich habs...sry, für alle die es interessiert.
#include <stdio.h>
#include <string.h>
#include <unistd.h> //liefert die funktion gethostname(..)
#include <sys/param.h> //liefert die konstante MAXHOSTNAMELEN
main()
{
int my_return;
char my_hostname[MAXHOSTNAMELEN];//hier kommt dann der hostname rein
printf("\nanfang\n");
my_return = gethostname(my_hostname,MAXHOSTNAMELEN);//hostname beziehen, maxhostnamelen bestimmt die länge des arrays
printf("returnwert:%i \nhostname:%s",my_return,my_hostname);
printf("\nende\n");
return 0;
}
Damit lässt sich der hostname des rechners feststellen auf dem das programm läuft.....
Hallo LordJaxom
Danke,Danke,Danke ... das mit dem Interpolieren war mir klar, aber der hat es ja zerrissen. Ich habe alles Ausprobiert blos nicht das "$1" also die Anführungsstriche... das war mein Bug, der Rückgabewert steht richtig in VAR1 drin ...jetzt kann ich weiter auswerten ...
Danke Dir
Gruss ALex
Ich benutze gmake.
Mittlerweile weiß ich wie man das macht.
Unterprojekt anlegen. Target = libtoolbibliothek - noinst
wo dann die .cpp reinkommen. Header .h kann man so anlegen, da wird automatisch ein Target erstellt (Header in noinst)
Das libtooltarget anklicken und Target erstellen, dann werden Makefile und und die .la Datei erstellt.
Je nachdem wogegen man die linken will, in Einstellungen - Bibliotheken diese dazulinken (LDADD).
Ist nur schade das es keine Manpages gibt wo erklärt wird wozu welches Target da ist und was zB. noinst bedeutet. Da fummelt man ewig rum.
Wichtig ist aber der Punkt: Target erstellen, damit die .la im Dialog angezeigt wird und damit man ein Makefile bekommt.
Danke für die Mühe.
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
Was macht ein NONBLOCKED read, wenn nichts im FIFO steht?
Es liest nichts aus, oder?
Bei meiner Anwendung kann es vorkommen, dass der Client später sendet, als der Server versucht zu lesen.
Wenn nichts ankommt, wird der Client-Prozess gekillt und eine Routine gestartet, die diesen unter anderem neu generiert und wieder überlagert - vorallem dadurch kann ein solcher zeitlicher Versatz entstehen. Der Client wird vom Server gestartet. (execv)
Mein Hauptproblem ist wohl, dass ich zwar die aktuelle Laufzeit der beiden Prozesse bestimme, diese aber nicht synchronisiere - vielleicht sollte ich da mal den Hebel ansetzen, hab aber noch keine Idee wie.
Mein read/write sieht nämlich so aus:
if (tDiffTime % 10 == 0 && tDiffTime != 0)
read bzw. write ...
Und eben diese tDiffTime kann unterschiedlich sein.
(tDiffTime wird aus der aktuellen Zeit - der Startzeit gebildet)
Morgen,
hat sich erledigt. Ich habe den shared-Memory Bereich beim beenden nicht gelöscht, sondern nur freigegeben. Beim erstellen des neuen Bereich mit 0666 vorher 0644 hat er vermutlich die Rechte nicht geändert.
Somit konnte ich alle Einstellungen ändern, hat aber nicht's gebracht.
Als ich mein Programm geändert hat (löschen beim beenden) funktionierte alles prima.
Danke
worst_case
in eine Variable
VAR=`ls ...`
Naja, schau am besten mal hier
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
http://docsrv.caldera.com:8457/en/AdvBashHowto/
Wenn du was mit Eingabefeldern und GUI-Zeugs haben willst, musst du dich mit dem verwendeten GUI-Toolkit befassen.
Ansonsten siehe http://www.ecst.csuchico.edu/~beej/guide/ipc/
@Frank S.
Lies doch bitte vorher die bereits gegebenen Antworten. Siehe zB tntnets Beitrag!
btw. folgender Link dürfte interessant sein, ist aber schon älter, daher weiß ich nicht wie relevant das noch ist http://www.suse.de/~aj/linux_lfs.html
Hallo
Ich habe eine pty (master und slave) unter Linux erzeugt, nun habe ich den Filedescriptor des Masters und stelle den Slave zur Verfügung(für externe Programme).
Also in meinem Programm habe ich eine Schleife die ein poll auf den masterPtyFD macht.
Extern von meinem Programm habe ich die SlavePTY auf die ein Programm schreiben kann. (z.B. echo "Test" >> /dev/pty/0)
Soweit geht auch alles ganz gut.
Mein Programm bekommt mir wenn jemand was auf den Slave schreibt und fängt dann an zu lesen.
struct pollfd fds = { fd: masterptyFD, events: POLLIN };
int timeout = 10000;
while (true) {
if( poll(&fds,1,timeout) && (fds.revents & POLLIN) ) {
//lese von dem FD
}
}
Problem ist nun nur das, wenn das externe Programm sich beendet, poll nur noch POLLHUP bringt.
Klar hat das externe Programm ein POLLJUP ausgelöst. Ich will nun aber das poll entweder POLLHUP ignoriert oder den Zustand wieder zurücksetzt.
Somit wird nach dem ersten POLLHUP in der Schleife sehr viel Rechenzeit verbraten.
Hat jemand eine Idee wie man das machen kann?