Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 13. Nov 2018 6:12

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Problem mit FAM
BeitragVerfasst: 27. Sep 2006 13:49 
Offline

Registriert: 27. Sep 2006 8:14
Beiträge: 6
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&#40;&#41; - return printable name of fam event code */


 


void checkEvent&#40;int code, const char *filename&#41;


&#123;


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


FAMChanged -- Eine Datei wurde verändert


FAMDeleted -- Eine Datei wurde gelöscht


FAMCreated -- Eine Datei wurde erstellt


FAMMoved -- Datei wurde verschoben


*/


        if&#40;code == FAMChanged&#41; /* Eine Datei wurde verändert */


 &#123;


                system&#40;"pfad/zu/bash/skript"&#41;;


 &#125;


&#125;





void main&#40;int argc, char *argv&#91;&#93;&#41;


&#123;


 int i, nmon, rc, fam_fd;


 FAMConnection fc;


 FAMRequest *frp;


 struct stat status;


 FAMEvent fe;


 fd_set readfds;


 


 frp = malloc&#40;argc * sizeof *frp&#41;;


 if &#40;!frp&#41;


 &#123;


         perror&#40;"malloc"&#41;;


         exit&#40;1&#41;;


 &#125;


 


 /* Open fam connection */


 


 if &#40;&#40;FAMOpen&#40;&fc&#41;&#41; < 0&#41; 


 &#123;


  perror&#40;"fam"&#41;;


  exit&#40;1&#41;;


 &#125;


 


 /* Request monitoring for each program argument */


 for&#40;nmon = 0, i = 1; i < argc; i++&#41;


 &#123;


         if &#40;stat&#40;argv&#91; i&#93;, &status&#41; < 0&#41;


  &#123;


   perror&#40;argv&#91; i&#93;&#41;;


   status.st_mode = 0;


  &#125;


  if&#40;&#40;status.st_mode & S_IFMT&#41; == S_IFDIR&#41;


   rc = FAMMonitorDirectory&#40;&fc, argv&#91;i &#93;, frp + i, NULL&#41;;


  else


   rc = FAMMonitorFile&#40;&fc, argv&#91; i&#93;, frp + i, NULL&#41;;


  if&#40;rc < 0&#41;


  &#123;


   perror&#40;"FAMMonitor failed"&#41;;


   continue;


  &#125;


  nmon++;


 &#125;


 if&#40;!nmon&#41;


 &#123;


  fprintf&#40;stderr, "Nothing monitored.


"&#41;;


  exit&#40;1&#41;;


 &#125;


 


 /* Initialize select data structure */


 


 fam_fd = FAMCONNECTION_GETFD&#40;&fc&#41;;


 FD_ZERO&#40;&readfds&#41;;


 FD_SET&#40;fam_fd, &readfds&#41;;


 


 /* Loop forever. */


 


 while&#40;1&#41;


 &#123;


         if&#40;select&#40;fam_fd + 1, &readfds, NULL, NULL, NULL&#41; < 0&#41;


  &#123;


   perror&#40;"select failed"&#41;;


   exit&#40;1&#41;;


  &#125;


  if&#40;FD_ISSET&#40;fam_fd, &readfds&#41;&#41;


  &#123;


   if&#40;FAMNextEvent&#40;&fc, &fe&#41; < 0&#41;


   &#123;


    perror&#40;"FAMNextEvent"&#41;;


    exit&#40;1&#41;;


   &#125;


   checkEvent&#40;fe.code, fe.filename&#41;;


  &#125;


 &#125;


&#125;


Bitte um Hilfe!

mfg Alex

THREAD BITTE LÖSCHEN PROBLEM WURDE GELÖST


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 27. Sep 2006 16:08 
Das sind die besten.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de