Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Problem mit FAM

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Linux12



Anmeldungsdatum: 27.09.2006
Beiträge: 6

BeitragVerfasst am: 27. Sep 2006 13:49   Titel: Problem mit FAM

Tag

Also, ich hab mir hier von einem Thread so ein modifiziertes Programm reingezogen und ausprobiert. Es dient dazu, ein Directory zu überwachen (mit FAM) und dann wenn eine Datei geändert wird ein Script aufzurufen.
So weit so gut, es sollte funktionieren allerdings kann ich mit dem Kommando FAMopen() keine Verbindung zu fam herstellen.
Er gibt mir immer den Errorcode aus.

Könnt ihr mir vielleicht weiterhelfen?

Hier das Programm:

Code:


code:


/*


 *   monitor.c -- monitor arbitrary file or directory


 *                using fam


 */





/*


 * Modified by Tobias Kortkamp


 *


 *


 */


 








#include <fam.h>


#include <stdio.h>


#include <stdlib.h>


#include <sys/stat.h>


#include <sys/select.h>


 


/* event_name() - return printable name of fam event code */


 


void checkEvent(int code, const char *filename)


{


/* Den selben Code unten kannst du mehrmals kopieren und entsprechend den Wert FAMChanged in eines der folgenden Sache ändern:


FAMChanged -- Eine Datei wurde verändert


FAMDeleted -- Eine Datei wurde gelöscht


FAMCreated -- Eine Datei wurde erstellt


FAMMoved -- Datei wurde verschoben


*/


        if(code == FAMChanged) /* Eine Datei wurde verändert */


 {


                system("pfad/zu/bash/skript");


 }


}





void main(int argc, char *argv[])


{


 int i, nmon, rc, fam_fd;


 FAMConnection fc;


 FAMRequest *frp;


 struct stat status;


 FAMEvent fe;


 fd_set readfds;


 


 frp = malloc(argc * sizeof *frp);


 if (!frp)


 {


         perror("malloc");


         exit(1);


 }


 


 /* Open fam connection */


 


 if ((FAMOpen(&fc)) < 0)


 {


  perror("fam");


  exit(1);


 }


 


 /* Request monitoring for each program argument */


 for(nmon = 0, i = 1; i < argc; i++)


 {


         if (stat(argv[ i], &status) < 0)


  {


   perror(argv[ i]);


   status.st_mode = 0;


  }


  if((status.st_mode & S_IFMT) == S_IFDIR)


   rc = FAMMonitorDirectory(&fc, argv[i ], frp + i, NULL);


  else


   rc = FAMMonitorFile(&fc, argv[ i], frp + i, NULL);


  if(rc < 0)


  {


   perror("FAMMonitor failed");


   continue;


  }


  nmon++;


 }


 if(!nmon)


 {


  fprintf(stderr, "Nothing monitored.


");


  exit(1);


 }


 


 /* Initialize select data structure */


 


 fam_fd = FAMCONNECTION_GETFD(&fc);


 FD_ZERO(&readfds);


 FD_SET(fam_fd, &readfds);


 


 /* Loop forever. */


 


 while(1)


 {


         if(select(fam_fd + 1, &readfds, NULL, NULL, NULL) < 0)


  {


   perror("select failed");


   exit(1);


  }


  if(FD_ISSET(fam_fd, &readfds))


  {


   if(FAMNextEvent(&fc, &fe) < 0)


   {


    perror("FAMNextEvent");


    exit(1);


   }


   checkEvent(fe.code, fe.filename);


  }


 }


}




Bitte um Hilfe!

mfg Alex

THREAD BITTE LÖSCHEN PROBLEM WURDE GELÖST
 
Benutzer-Profile anzeigen Private Nachricht senden

PDA
Gast





BeitragVerfasst am: 27. Sep 2006 16:08   Titel:

Das sind die besten.
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy