Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » GNU/Linux » Timestap

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.08.2004, 17:59 Uhr
Plutonium



Hallo,
Ich habe zwei Anfängerfragen:
Wie komme ich mit C++ an den Timestap auf einem Linux-System? Welche Header brauche ich dafür?

Wie kann ich mit C++ einen Daemon starten? Ich habe diesen Source auf http://pronix.de gefunden nur leider ist er in C und ich habe keine ahnung wie ich ihn in C++ schreiben soll

C++:
#include <stdio.h>
#include <unistd.h>
#include <syslog.h>
#include <sys/types.h>

#define CHILD 0
#define ERROR -1

void start_daemon(char *log_name, int facility)
{
int i;
pid_t pid;

/*Elternprozeß beenden, somit haben wir einen Waisen
    dessen sie jetzt vorerst init annimmt*/

if((pid = fork()) != CHILD) exit(0);
/*Unser Kindprozess wird zum Session-Führer. Mißlingt dies,
    kann der Fehler daran liegen das der Prozeß bereits Sessionführer
    ist */

if(setsid() == ERROR)
  {
  fprintf(stderr, "%s kann nicht Session-Führer werden!\n",log_name);
  exit(0);
  }
/* Gründe für das Root-Wurzelverzeichnis:
     +core-Datei wird im aktuellen Arbeitsverzeichnis hinterlegt
     +Damit bei Beendigung mit umount das Dateisystem sicher abgehängt
      werde kann */

chdir("/");
/*Damit wir nicht die Bitmaske vom Elternprozeß erben bzw. diese
    bleiben, stellen wir diese auf 0*/

umask(0);
/*Wir schließen alle geöffneten Filedeskriptoren....*/
for(i=sysconf(_SC_OPEN_MAX); i>0; i--)
  close(i);

/*Da unser Dämonprozeß selbst kein Terminal für die Ausgabe hat....*/
openlog(log_name, LOG_PID, facility);
}


int main(int argc, char **argv)
{
start_daemon("meinDaemon", LOG_USER);
while(1);
/*Enlossschleifen: Hier sollte nun der Code für den
    Daemon stehen, was immer er auch tun soll.
    Bei Fehlermeldungen Beispiesweise:
    if(dies_ist_Passiert)
     syslog(LOG_WARNING, "dies_ist_Passiert");
    else if(das_ist_Passiert)
     syslog(LOG_INFO, "das_ist_Passiert");*/

return 0;
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.08.2004, 18:59 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ich würde sagen, genauso?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ GNU/Linux ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: